diff --git a/INSTALL.rst b/INSTALL.rst index 979c8edd..f1657dbb 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -25,8 +25,8 @@ sets all the environment variables required for the normal operation of the Running this script will also tell you which external dependencies are missing and need to be installed. -When all dependencies have been installed, ( the :command:`configure` will tell you) -source the :file:`quantum_package.rc` in order to load all environment variables and compile the |QP|. +When all dependencies have been installed, ( the :command:`configure` will tell you) +source the :file:`quantum_package.rc` in order to load all environment variables and compile the |QP|. Requirements @@ -36,7 +36,7 @@ Requirements - Fortran compiler : GNU Fortran, Intel Fortran or IBM XL Fortran - `GNU make`_ - `Autoconf`_ -- `Python`_ > 2.6 +- `Python`_ > 3.0 - |IRPF90| : Fortran code generator - |EZFIO| : Easy Fortran Input/Output library generator - |BLAS| and |LAPACK| @@ -44,7 +44,7 @@ Requirements - `GNU Patch`_ - |ZeroMQ| : networking library - `GMP `_ : Gnu Multiple Precision Arithmetic Library -- |OCaml| compiler with |OPAM| package manager +- |OCaml| compiler with |OPAM| package manager - `Bubblewrap `_ : Sandboxing tool required by Opam - `libcap `_ : POSIX capabilities required by Bubblewrap - |Ninja| : a parallel build system @@ -74,29 +74,29 @@ Help for installing external dependencies Using the :command:`configure` executable ----------------------------------------- -The :command:`configure` executable can help you in installing the minimal dependencies you will need to compile the |QP|. -The command is to be used as follows: +The :command:`configure` executable can help you in installing the minimal dependencies you will need to compile the |QP|. +The command is to be used as follows: .. code:: bash ./configure --install -The following packages are supported by the :command:`configure` installer: +The following packages are supported by the :command:`configure` installer: -* ninja -* irpf90 -* zeromq +* ninja +* irpf90 +* zeromq * f77zmq * gmp * libcap * bwrap * ocaml ( :math:`\approx` 10 minutes) -* ezfio -* docopt -* resultsFile +* ezfio +* docopt +* resultsFile * bats -Example: +Example: .. code:: bash @@ -115,7 +115,7 @@ Example: If the :command:`configure` executable fails to install a specific dependency ----------------------------------------------------------------------------- -If the :command:`configure` executable does not succeed to install a specific dependency, +If the :command:`configure` executable does not succeed to install a specific dependency, there are some proposition of how to download and install the minimal dependencies to compile and use the |QP|. @@ -140,7 +140,7 @@ IRPF90 ------ *IRPF90* is a Fortran code generator for programming using the Implicit Reference -to Parameters (IRP) method. +to Parameters (IRP) method. * Download the latest version of IRPF90 here : ``_ and move @@ -312,26 +312,26 @@ OCaml ``_ and move it in the :file:`${QP_ROOT}/external` directory -* If you use OCaml only with the |qp|, you can install the OPAM directory +* If you use OCaml only with the |qp|, you can install the OPAM directory containing the compiler and all the installed libraries in the :file:`${QP_ROOT}/external` directory as .. code:: bash - + export OPAMROOT=${QP_ROOT}/external/opam * Run the installer .. code:: bash - + echo ${QP_ROOT}/bin ${QP_ROOT}/external/opam_installer.sh --no-backup --fresh The :command:`opam` command can be installed in the :file:`${QP_ROOT}/bin` directory. To do this, take the output of ``echo ${QP_ROOT}/bin`` and use it as an answer to where :command:`opam` should be installed. - + * Install the OCaml compiler @@ -370,11 +370,11 @@ Docopt *Docopt* is a Python package defining a command-line interface description language. -If you have *pip* for Python2, you can do +If you have *pip* for Python3, you can do .. code:: bash - pip2 install --user docopt + python3 -m pip install --user docopt Otherwise, diff --git a/REPLACE b/REPLACE index 1f9fff4b..7de66ba6 100755 --- a/REPLACE +++ b/REPLACE @@ -1,571 +1,181 @@ # This file contains all the renamings that occured between qp1 and qp2. - -qp_name mo_mono_elec_integral --rename=mo_mono_elec_integrals -qp_name mo_nucl_elec_integral --rename=mo_nucl_elec_integrals -qp_name mo_kinetic_integral --rename=mo_kinetic_integrals -qp_name disk_access_mo_one_integrals --replace="io_mo_one_e_integrals" -qp_name disk_access_mo_one_integrals --rename="io_mo_one_e_integrals" -qp_name disk_access_ao_one_integrals --rename="io_ao_one_e_integrals" +qp_name aa_operator_bielec -r aa_operator_two_e +qp_name ac_operator_bielec -r ac_operator_two_e +qp_name ao_bi_elec_integral_alpha -r ao_two_e_integral_alpha +qp_name ao_bi_elec_integral_alpha_tmp -r ao_two_e_integral_alpha_tmp +qp_name ao_bi_elec_integral_beta -r ao_two_e_integral_beta +qp_name ao_bi_elec_integral_beta_tmp -r ao_two_e_integral_beta_tmp +qp_name ao_bielec_integral_erf -r ao_two_e_integral_erf +qp_name ao_bielec_integral_erf_schwartz -r ao_two_e_integral_erf_schwartz +qp_name ao_bielec_integral -r ao_two_e_integral +qp_name ao_bielec_integral_schwartz_accel_erf -r ao_two_e_integral_schwartz_accel_erf +qp_name ao_bielec_integral_schwartz_accel -r ao_two_e_integral_schwartz_accel +qp_name ao_bielec_integral_schwartz -r ao_two_e_integral_schwartz +qp_name ao_bielec_integrals_erf_in_map_collector -r ao_two_e_integrals_erf_in_map_collector +qp_name ao_bielec_integrals_erf_in_map -r ao_two_e_integrals_erf_in_map +qp_name ao_bielec_integrals_erf_in_map_slave_inproc -r ao_two_e_integrals_erf_in_map_slave_inproc +qp_name ao_bielec_integrals_erf_in_map_slave -r ao_two_e_integrals_erf_in_map_slave +qp_name ao_bielec_integrals_erf_in_map_slave_tcp -r ao_two_e_integrals_erf_in_map_slave_tcp +qp_name ao_bielec_integrals_in_map_collector -r ao_two_e_integrals_in_map_collector +qp_name ao_bielec_integrals_in_map -r ao_two_e_integrals_in_map +qp_name ao_bielec_integrals_in_map_slave_inproc -r ao_two_e_integrals_in_map_slave_inproc +qp_name ao_bielec_integrals_in_map_slave -r ao_two_e_integrals_in_map_slave +qp_name ao_bielec_integrals_in_map_slave_tcp -r ao_two_e_integrals_in_map_slave_tcp +qp_name ao_integrals_n_e qp_name ao_mono_elec_integral --rename="ao_one_e_integrals" -qp_name disk_access_ao_integrals --rename="io_ao_two_e_integrals" -qp_name disk_access_mo_integrals --rename="io_mo_two_e_integrals" -qp_name io_mo_integrals --rename="io_mo_two_e_integrals" -qp_name io_ao_integrals --rename="io_ao_two_e_integrals" -qp_name read_ao_integrals --rename="read_ao_two_e_integrals" -qp_name read_mo_integrals --rename="read_mo_two_e_integrals" -qp_name write_mo_integrals --rename="write_mo_two_e_integrals" -qp_name write_ao_integrals --rename="write_ao_two_e_integrals" -qp_name ao_two_e_integrals --rename="ao_two_e_ints" -qp_name mo_two_e_integrals --rename="mo_two_e_ints" -qp_name mo_two_e_erf_integrals --rename="mo_two_e_erf_ints" +qp_name ao_mono_elec_integral --rename=ao_one_e_integrals +qp_name ao_nucl_elec_integrals_per_atom -r ao_integrals_n_e_per_atom +qp_name ao_nucl_elec_integrals_per_atom -r ao_integrals_n_e_per_atom +qp_name ao_nucl_elec_integrals -r ao_integrals_n_e +qp_name ao_nucl_elec_integrals -r ao_integrals_n_e +qp_name ao_nucl_elec_interals -r ao_integrals_n_e +qp_name ao_nucl_elec_interals -r ao_integrals_n_e +qp_name a_operator_bielec -r a_operator_two_e qp_name ao_two_e_erf_integrals --rename="ao_two_e_erf_ints" -qp_name ezfio_set_mo_two_e_ints_io_mo_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_set_ao_two_e_ints_io_ao_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals -qp_name mo_tot_num -r mo_num -qp_name ezfio_set_mo_basis_mo_tot_num -r ezfio_set_mo_basis_mo_num -qp_name ezfio_get_mo_basis_mo_tot_num -r ezfio_get_mo_basis_mo_num -qp_name ezfio_set_ao_two_e_integrals_disk_access_ao_integrals -r ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals -qp_name ezfio_set_mo_two_e_integrals_disk_access_mo_integrals -r ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -qp_name ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_get_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_get_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals -qp_name ezfio_get_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_get_ao_two_e_ints_io_ao_two_e_integrals -qp_name ezfio_set_ao_two_e_erf_integrals_disk_access_ao_integrals_erf -r ezfio_set_ao_two_e_erf_ints_io_ao_two_e_integrals_erf -qp_name ezfio_set_mo_two_e_erf_integrals_disk_access_mo_integrals_erf -r ezfio_set_mo_two_e_erf_ints_io_mo_two_e_integrals_erf +qp_name ao_two_e_erf_integrals --rename=ao_two_e_erf_ints +qp_name ao_two_e_integrals --rename="ao_two_e_ints" +qp_name ao_two_e_integrals --rename=ao_two_e_ints +qp_name bielec +qp_name bielec_integrals_index_reverse -r two_e_integrals_index_reverse +qp_name bielec_integrals_index -r two_e_integrals_index +qp_name bi_elec_ref_bitmask_energy -r ref_bitmask_two_e_energy +qp_name bielec -r two-electron +qp_name bielec_tmp_0_idx -r two_e_tmp_0_idx +qp_name bielec_tmp_0 -r two_e_tmp_0 +qp_name bielec_tmp_1 -r two_e_tmp_1 +qp_name bielec_tmp_2 -r two_e_tmp_2 +qp_name bielec_tmp_3 -r two_e_tmp_3 +qp_name bielectronic -r two-electron +qp_name compute_ao_bielec_integrals_erf -r compute_ao_two_e_integrals_erf +qp_name compute_ao_bielec_integrals -r compute_ao_two_e_integrals +qp_name connected_to_ref_by_mono -r connected_to_ref_by_single +qp_name data_one_body_alpha_dm_mo -r data_one_body_dm_alpha_mo +qp_name data_one_body_beta_dm_mo -r data_one_body_dm_beta_mo +qp_name data_one_body_dm_alpha_mo -r data_one_e_dm_alpha_mo +qp_name data_one_body_dm_beta_mo -r data_one_e_dm_beta_mo +qp_name diag_H_mat_elem_monoelec -r diag_H_mat_elem_one_e +qp_name disk_access_ao_integrals_erf qp_name disk_access_ao_integrals_erf io_ao_integrals_erf qp_name disk_access_ao_integrals_erf -r io_ao_integrals_erf +qp_name disk_access_ao_integrals --rename="io_ao_two_e_integrals" +qp_name disk_access_ao_integrals --rename=io_ao_two_e_integrals +qp_name disk_access_ao_one_integrals --rename="io_ao_one_e_integrals" +qp_name disk_access_ao_one_integrals --rename=io_ao_one_e_integrals qp_name disk_access_mo_integrals_erf -r io_mo_integrals_erf -qp_name write_mo_integrals_erf -r write_mo_two_e_integrals_erf -qp_name read_mo_integrals_erf -r read_mo_two_e_integrals_erf -qp_name ao_integrals_n_e -qp_name ao_nucl_elec_interals -r ao_integrals_n_e -qp_name ao_nucl_elec_integrals -r ao_integrals_n_e -qp_name ao_nucl_elec_integrals_per_atom -r ao_integrals_n_e_per_atom -qp_name bi_elec_ref_bitmask_energy -r ref_bitmask_two_e_energy -qp_name mono_elec_ref_bitmask_energy -r ref_bitmask_one_e_energy -qp_name kinetic_ref_bitmask_energy -r ref_bitmask_kinetic_energy -qp_name nucl_elec_ref_bitmask_energy -r ref_bitmask_e_n_energy -qp_name disk_access_ao_integrals_erf -qp_name mo_bielec_integral_jj -qp_name mo_bielec_integral_jj -r mo_two_e_integrals_jj -qp_name mo_bielec_integral_jj_anti -r mo_two_e_integrals_jj_anti -qp_name mo_bielec_integral_jj_anti_from_ao -r mo_two_e_integrals_jj_anti_from_ao -qp_name mo_bielec_integral_jj_anti_exchange -r mo_two_e_integrals_jj_exchange -qp_name mo_bielec_integral_jj_exchange -r mo_two_e_integrals_jj_exchange -qp_name mo_bielec_integral_jj_exchange_from_ao -r mo_two_e_integrals_jj_exchange_from_ao -qp_name mo_bielec_integral_vv_anti_from_ao -r mo_two_e_integrals_vv_anti_from_ao -qp_name mo_bielec_integral_vv_exchange_from_ao -r mo_two_e_integrals_vv_exchange_from_ao -qp_name mo_bielec_integral_vv_from_ao -r mo_two_e_integrals_vv_from_ao -qp_name mo_bielec_integrals_erf_in_map -r mo_two_e_integrals_erf_in_map -qp_name mo_bielec_integrals_in_map -r mo_two_e_integrals_in_map -qp_name ao_bielec_integrals_in_map -r ao_two_e_integrals_in_map -qp_name ao_bielec_integrals_erf_in_map -r ao_two_e_integrals_erf_in_map -qp_name mo_mono_elec_integrals -r mo_one_e_integrals -qp_name mo_nucl_elec_integrals -r mo_integrals_n_e -qp_name mo_nucl_elec_integrals_per_atom -r mo_integrals_n_e_per_atom -qp_name I_x1_pol_mult_mono_elec -r I_x1_pol_mult_one_e -qp_name I_x2_pol_mult_mono_elec -r I_x2_pol_mult_one_e +qp_name disk_access_mo_integrals --rename="io_mo_two_e_integrals" +qp_name disk_access_mo_integrals --rename=io_mo_two_e_integrals +qp_name disk_access_mo_one_integrals --rename="io_mo_one_e_integrals" +qp_name disk_access_mo_one_integrals --rename=io_mo_one_e_integrals +qp_name disk_access_mo_one_integrals --replace="io_mo_one_e_integrals" +qp_name disk_access_nuclear_repulsion --rename=io_nuclear_repulsion +qp_name do_mono_excitation -r do_single_excitation +qp_name ezfio_get_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_get_ao_two_e_ints_io_ao_two_e_integrals +qp_name ezfio_get_mo_basis_mo_tot_num -r ezfio_get_mo_basis_mo_num +qp_name ezfio_get_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_get_mo_two_e_ints_io_mo_two_e_integrals +qp_name ezfio_set_ao_two_e_erf_integrals_disk_access_ao_integrals_erf -r ezfio_set_ao_two_e_erf_ints_io_ao_two_e_integrals_erf +qp_name ezfio_set_ao_two_e_integrals_disk_access_ao_integrals -r ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals +qp_name ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals +qp_name ezfio_set_ao_two_e_ints_io_ao_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals +qp_name ezfio_set_aux_quantities_data_one_body_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_alpha_dm_mo +qp_name ezfio_set_aux_quantities_data_one_body_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_beta_dm_mo +qp_name ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_alpha_mo +qp_name ezfio_set_aux_quantities_data_one_e_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_beta_mo +qp_name ezfio_set_mo_basis_mo_tot_num -r ezfio_set_mo_basis_mo_num +qp_name ezfio_set_mo_two_e_erf_integrals_disk_access_mo_integrals_erf -r ezfio_set_mo_two_e_erf_ints_io_mo_two_e_integrals_erf +qp_name ezfio_set_mo_two_e_integrals_disk_access_mo_integrals -r ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals +qp_name ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals +qp_name ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals +qp_name ezfio_set_mo_two_e_ints_io_mo_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals +qp_name get_ao_bielec_integral_erf -r get_ao_two_e_integral_erf +qp_name get_ao_bielec_integral -r get_ao_two_e_integral +qp_name get_ao_bielec_integrals_erf_non_zero -r get_ao_two_e_integrals_erf_non_zero +qp_name get_ao_bielec_integrals_erf -r get_ao_two_e_integrals_erf +qp_name get_ao_bielec_integrals_non_zero -r get_ao_two_e_integrals_non_zero +qp_name get_ao_bielec_integrals -r get_ao_two_e_integrals +qp_name get_excitation_degree_vector_mono_or_exchange -r get_excitation_degree_vector_single_or_exchange_or_exchange +qp_name get_excitation_degree_vector_mono_or_exchange_verbose -r get_excitation_degree_vector_single_or_exchange_verbose +qp_name get_excitation_degree_vector_mono -r get_excitation_degree_vector_single +qp_name get_excitation_degree_vector_single_or_exchange_or_exchange -r get_excitation_degree_vector_single_or_exchange +qp_name get_mo_bielec_integral_erf -r get_mo_two_e_integral_erf +qp_name get_mo_bielec_integral -r get_two_e_integral +qp_name get_mo_bielec_integral_schwartz -r get_mo_two_e_integral_schwartz +qp_name get_mo_bielec_integrals_coulomb_ii -r get_mo_two_e_integrals_coulomb_ii +qp_name get_mo_bielec_integrals_coulomb -r get_mo_two_e_integrals_coulomb +qp_name get_mo_bielec_integrals_erf_coulomb_ii -r get_mo_two_e_integrals_erf_coulomb_ii +qp_name get_mo_bielec_integrals_erf_exch_ii -r get_mo_two_e_integrals_erf_exch_ii +qp_name get_mo_bielec_integrals_erf_i1j1 -r get_mo_two_e_integrals_erf_i1j1 +qp_name get_mo_bielec_integrals_erf_ij -r get_mo_two_e_integrals_erf_ij +qp_name get_mo_bielec_integrals_erf -r get_mo_two_e_integrals_erf +qp_name get_mo_bielec_integrals_exch_ii -r get_mo_two_e_integrals_exch_ii +qp_name get_mo_bielec_integrals_i1j1 -r get_mo_two_e_integrals_i1j1 +qp_name get_mo_bielec_integrals_ij -r get_mo_two_e_integrals_ij +qp_name get_mo_bielec_integrals -r get_mo_two_e_integrals +qp_name get_mono_excitation_from_fock -r get_single_excitation_from_fock +qp_name get_mono_excitation -r get_single_excitation +qp_name get_mono_excitation_spin +qp_name get_mono_excitation_spin -r get_single_excitation_spin +qp_name give_polynom_mult_center_mono_elec_erf_opt -r give_polynomial_mult_center_one_e_erf_opt +qp_name give_polynom_mult_center_mono_elec_erf -r give_polynomial_mult_center_one_e_erf qp_name give_polynom_mult_center_mono_elec give_polynomial_mult_center_one_e qp_name give_polynom_mult_center_mono_elec -r give_polynomial_mult_center_one_e -qp_name give_polynom_mult_center_mono_elec_erf -r give_polynomial_mult_center_one_e_erf -qp_name give_polynom_mult_center_mono_elec_erf_opt -r give_polynomial_mult_center_one_e_erf_opt -qp_name i_H_j_mono_spin_monoelec -r i_H_j_mono_spin_one_e -qp_name diag_H_mat_elem_monoelec -r diag_H_mat_elem_one_e -qp_name i_H_j_monoelec -r i_H_j_one_e -qp_name get_mo_bielec_integral -r get_two_e_integral -qp_name ao_bielec_integrals_in_map_slave_tcp -r ao_two_e_integrals_in_map_slave_tcp -qp_name get_ao_bielec_integrals_non_zero -r get_ao_two_e_integrals_non_zero -qp_name bielec -qp_name bielec -r two-electron -qp_name ao_bielec_integral -r ao_two_e_integral -qp_name compute_ao_bielec_integrals -r compute_ao_two_e_integrals -qp_name mo_bielec_integral_jj_from_ao -r mo_two_e_integral_jj_from_ao -qp_name bielec_tmp_1 -r two_e_tmp_1 -qp_name bielec_tmp_2 -r two_e_tmp_2 -qp_name bielec_tmp_3 -r two_e_tmp_3 -qp_name mo_bielec_integrals_index -r mo_two_e_integrals_index -qp_name bielec_tmp_0_idx -r two_e_tmp_0_idx -qp_name bielec_tmp_0 -r two_e_tmp_0 -qp_name get_ao_bielec_integrals -r get_ao_two_e_integrals -qp_name bielectronic -r two-electron -qp_name bielec_integrals_index -r two_e_integrals_index -qp_name mo_bielec_integral -r mo_two_e_integral -qp_name mo_bielec_integrals_ij -r mo_two_e_integrals_ij -qp_name get_mo_bielec_integrals_ij -r get_mo_two_e_integrals_ij -qp_name get_mo_bielec_integrals_i1j1 -r get_mo_two_e_integrals_i1j1 -qp_name get_mo_bielec_integrals_coulomb -r get_mo_two_e_integrals_coulomb -qp_name get_mo_bielec_integrals_coulomb_ii -r get_mo_two_e_integrals_coulomb_ii -qp_name get_mo_bielec_integrals_exch_ii -r get_mo_two_e_integrals_exch_ii -qp_name get_mo_bielec_integrals -r get_mo_two_e_integrals -qp_name get_ao_bielec_integrals_erf -r get_ao_two_e_integrals_erf -qp_name save_erf_bielec_ints_mo_into_ints_mo -r save_erf_two_e_ints_mo_into_ints_mo -qp_name get_mo_bielec_integral_erf -r get_mo_two_e_integral_erf -qp_name get_ao_bielec_integral_erf -r get_ao_two_e_integral_erf -qp_name bielec_integrals_index_reverse -r two_e_integrals_index_reverse -qp_name get_mo_bielec_integrals_erf -r get_mo_two_e_integrals_erf -qp_name ao_bielec_integral_schwartz -r ao_two_e_integral_schwartz -qp_name get_mo_bielec_integrals_erf_ij -r get_mo_two_e_integrals_erf_ij -qp_name get_mo_bielec_integrals_erf_i1j1 -r get_mo_two_e_integrals_erf_i1j1 -qp_name get_mo_bielec_integral_schwartz -r get_mo_two_e_integral_schwartz -qp_name get_ao_bielec_integrals_erf_non_zero -r get_ao_two_e_integrals_erf_non_zero -qp_name compute_ao_bielec_integrals_erf -r compute_ao_two_e_integrals_erf -qp_name mo_bielec_integrals_erf_index -r mo_two_e_integrals_erf_index -qp_name get_mo_bielec_integrals_erf_exch_ii -r get_mo_two_e_integrals_erf_exch_ii -qp_name get_mo_bielec_integrals_erf_coulomb_ii -r get_mo_two_e_integrals_erf_coulomb_ii -qp_name mo_bielec_integral_erf -r mo_two_e_integral_erf -qp_name i_H_j_bielec -r i_H_j_two_e -qp_name H_S2_u_0_bielec_nstates_openmp_work -r H_S2_u_0_two_e_nstates_openmp_work +qp_name H_S2_u_0_bielec_nstates_openmp -r H_S2_u_0_two_e_nstates_openmp +qp_name H_S2_u_0_bielec_nstates_openmp_work_ qp_name H_S2_u_0_bielec_nstates_openmp_work_1 -r H_S2_u_0_two_e_nstates_openmp_work_1 qp_name H_S2_u_0_bielec_nstates_openmp_work_2 -r H_S2_u_0_two_e_nstates_openmp_work_2 qp_name H_S2_u_0_bielec_nstates_openmp_work_3 -r H_S2_u_0_two_e_nstates_openmp_work_3 qp_name H_S2_u_0_bielec_nstates_openmp_work_4 -r H_S2_u_0_two_e_nstates_openmp_work_4 -qp_name H_S2_u_0_bielec_nstates_openmp -r H_S2_u_0_two_e_nstates_openmp -qp_name ac_operator_bielec -r ac_operator_two_e -qp_name aa_operator_bielec -r aa_operator_two_e -qp_name a_operator_bielec -r a_operator_two_e -qp_name u_0_H_u_0_bielec -r u_0_H_u_0_two_e qp_name H_S2_u_0_bielec_nstates_openmp_work_$N_int -qp_name H_S2_u_0_bielec_nstates_openmp_work_$N_int #-r "H_S2_u_0_two_e_nstates_openmp_work_$N_int" qp_name H_S2_u_0_bielec_nstates_openmp_work_$N_int -r "H_S2_u_0_two_e_nstates_openmp_work_$N_int" -qp_name ao_bielec_integral_erf -r ao_two_e_integral_erf -qp_name psi_energy_bielec -r psi_energy_two_e -qp_name ao_bielec_integrals_in_map_slave_inproc -r ao_two_e_integrals_in_map_slave_inproc -qp_name ao_bielec_integrals_in_map_collector -r ao_two_e_integrals_in_map_collector -qp_name ao_bielec_integral_schwartz_accel -r ao_two_e_integral_schwartz_accel -qp_name get_ao_bielec_integral -r get_ao_two_e_integral -qp_name ao_bielec_integrals_in_map_slave -r ao_two_e_integrals_in_map_slave -qp_name ao_bielec_integral_erf_schwartz -r ao_two_e_integral_erf_schwartz -qp_name ao_bielec_integral_schwartz_accel_erf -r ao_two_e_integral_schwartz_accel_erf -qp_name ao_bielec_integrals_erf_in_map_slave_tcp -r ao_two_e_integrals_erf_in_map_slave_tcp -qp_name ao_bielec_integrals_erf_in_map_slave -r ao_two_e_integrals_erf_in_map_slave -qp_name ao_bielec_integrals_erf_in_map_slave_inproc -r ao_two_e_integrals_erf_in_map_slave_inproc -qp_name ao_bielec_integrals_erf_in_map_collector -r ao_two_e_integrals_erf_in_map_collector -qp_name save_erf_bielec_ints_ao_into_ints_ao -r save_erf_two_e_ints_ao_into_ints_ao -qp_name save_erf_bi_elec_integrals_mo -r save_erf_two_e_integrals_mo -qp_name ao_bi_elec_integral_beta -r ao_two_e_integral_beta -qp_name ao_bi_elec_integral_alpha -r ao_two_e_integral_alpha -qp_name ao_bi_elec_integral_alpha_tmp -r ao_two_e_integral_alpha_tmp -qp_name ao_bi_elec_integral_beta_tmp -r ao_two_e_integral_beta_tmp -qp_name data_one_body_alpha_dm_mo -r data_one_body_dm_alpha_mo -qp_name data_one_body_beta_dm_mo -r data_one_body_dm_beta_mo -qp_name one_body_dm_alpha_ao_for_dft -r one_e_dm_alpha_ao_for_dft -qp_name one_body_dm_alpha_at_r -r one_e_dm_alpha_at_r -qp_name one_body_dm_ao_alpha -r one_e_dm_ao_alpha -qp_name one_body_dm_ao_beta -r one_e_dm_ao_beta -qp_name one_body_dm_average_mo_for_dft -r one_e_dm_average_mo_for_dft -qp_name one_body_dm_beta_ao_for_dft -r one_e_dm_beta_ao_for_dft -qp_name one_body_dm_beta_at_r -r one_e_dm_beta_at_r -qp_name one_body_dm_dagger_mo_spin_index -r one_e_dm_dagger_mo_spin_index -qp_name one_body_dm_mo -r one_e_dm_mo -qp_name one_body_dm_mo_alpha -r one_e_dm_mo_alpha -qp_name one_body_dm_mo_alpha_average -r one_e_dm_mo_alpha_average -qp_name one_body_dm_mo_alpha_for_dft -r one_e_dm_mo_alpha_for_dft -qp_name one_body_dm_mo_beta -r one_e_dm_mo_beta -qp_name one_body_dm_mo_beta_average -r one_e_dm_mo_beta_average -qp_name one_body_dm_mo_beta_for_dft -r one_e_dm_mo_beta_for_dft -qp_name one_body_dm_mo_diff -r one_e_dm_mo_diff -qp_name one_body_dm_mo_for_dft -r one_e_dm_mo_for_dft -qp_name one_body_dm_mo_spin_index -r one_e_dm_mo_spin_index -qp_name one_body_grad_2_dm_alpha_at_r -r one_e_grad_2_dm_alpha_at_r -qp_name one_body_grad_2_dm_beta_at_r -r one_e_grad_2_dm_beta_at_r -qp_name one_body_spin_density_ao -r one_e_spin_density_ao -qp_name one_body_spin_density_mo -r one_e_spin_density_mo -qp_name one_electron_energy -r one_e_energy -qp_name one_dm_alpha_in_r -r one_e_dm_alpha_in_r -qp_name one_dm_and_grad_alpha_in_r -r one_e_dm_and_grad_alpha_in_r -qp_name one_dm_and_grad_beta_in_r -r one_e_dm_and_grad_beta_in_r -qp_name one_dm_beta_in_r -r one_e_dm_beta_in_r -qp_name ezfio_set_aux_quantities_data_one_body_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -qp_name ezfio_set_aux_quantities_data_one_body_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_beta_dm_mo -qp_name data_one_body_dm_alpha_mo -r data_one_e_dm_alpha_mo -qp_name data_one_body_dm_beta_mo -r data_one_e_dm_beta_mo -qp_name save_one_body_dm -r save_one_e_dm -qp_name ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_alpha_mo -qp_name ezfio_set_aux_quantities_data_one_e_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_beta_mo -qp_name two_electron_energy -r two_e_energy -qp_name do_mono_excitation -r do_single_excitation -qp_name get_mono_excitation -r get_single_excitation -qp_name get_mono_excitation_from_fock -r get_single_excitation_from_fock -qp_name is_connected_to_by_mono -r is_connected_to_by_single -qp_name connected_to_ref_by_mono -r connected_to_ref_by_single -qp_name mono_excitation_wee -r single_excitation_wee -qp_name get_mono_excitation_spin -qp_name get_mono_excitation_spin -r get_single_excitation_spin -qp_name get_excitation_degree_vector_mono -r get_excitation_degree_vector_single -qp_name get_excitation_degree_vector_mono_or_exchange -r get_excitation_degree_vector_single_or_exchange_or_exchange -qp_name get_excitation_degree_vector_single_or_exchange_or_exchange -r get_excitation_degree_vector_single_or_exchange -qp_name get_excitation_degree_vector_mono_or_exchange_verbose -r get_excitation_degree_vector_single_or_exchange_verbose +qp_name H_S2_u_0_bielec_nstates_openmp_work_$N_int #-r "H_S2_u_0_two_e_nstates_openmp_work_$N_int" +qp_name H_S2_u_0_bielec_nstates_openmp_work -r H_S2_u_0_two_e_nstates_openmp_work +qp_name H_S2_u_0_bielec_nstates_openmp_work_ -r H_S2_u_0_two_e_nstates_openmp_work_ +qp_name i_H_j_bielec -r i_H_j_two_e +qp_name i_H_j_monoelec -r i_H_j_one_e +qp_name i_H_j_monoelec -r i_H_j_one_e +qp_name i_H_j_mono_spin_monoelec -r i_H_j_mono_spin_one_e qp_name i_h_j_mono_spin -r i_h_j_single_spin -qp_name i_Wee_j_mono -r i_Wee_j_single - -qp_name potential_sr_x_alpha_ao_lda --rename=potential_x_alpha_ao_sr_lda -qp_name potential_sr_x_beta_ao_lda --rename=potential_x_beta_ao_sr_lda -qp_name potential_sr_c_alpha_ao_lda --rename=potential_c_alpha_ao_sr_lda -qp_name potential_sr_c_beta_ao_lda --rename=potential_c_beta_ao_sr_lda -qp_name potential_sr_xc_alpha_ao_lda --rename=potential_xc_alpha_ao_sr_lda -qp_name potential_sr_xc_beta_ao_lda --rename=potential_xc_beta_ao_sr_lda - -qp_name potential_sr_x_alpha_ao_pbe --rename=potential_x_alpha_ao_sr_pbe -qp_name potential_sr_x_beta_ao_pbe --rename=potential_x_beta_ao_sr_pbe -qp_name potential_sr_c_alpha_ao_pbe --rename=potential_c_alpha_ao_sr_pbe -qp_name potential_sr_c_beta_ao_pbe --rename=potential_c_beta_ao_sr_pbe -qp_name potential_sr_xc_alpha_ao_pbe --rename=potential_xc_alpha_ao_sr_pbe -qp_name potential_sr_xc_beta_ao_pbe --rename=potential_xc_beta_ao_sr_pbe - - -qp_name mo_mono_elec_integral --rename=mo_mono_elec_integrals -qp_name mo_mono_elec_integral --rename=mo_mono_elec_integrals -qp_name mo_nucl_elec_integral --rename=mo_nucl_elec_integrals -qp_name mo_kinetic_integral --rename=mo_kinetic_integrals -qp_name disk_access_mo_one_integrals --rename=io_mo_one_e_integrals -qp_name disk_access_ao_one_integrals --rename=io_ao_one_e_integrals -qp_name ao_mono_elec_integral --rename=ao_one_e_integrals -qp_name disk_access_ao_integrals --rename=io_ao_two_e_integrals -qp_name disk_access_mo_integrals --rename=io_mo_two_e_integrals -qp_name io_mo_integrals --rename=io_mo_two_e_integrals +qp_name io_ao_integrals --rename="io_ao_two_e_integrals" qp_name io_ao_integrals --rename=io_ao_two_e_integrals -qp_name read_ao_integrals --rename=read_ao_two_e_integrals -qp_name read_mo_integrals --rename=read_mo_two_e_integrals -qp_name write_mo_integrals --rename=write_mo_two_e_integrals -qp_name write_ao_integrals --rename=write_ao_two_e_integrals -qp_name ao_two_e_integrals --rename=ao_two_e_ints -qp_name mo_two_e_integrals --rename=mo_two_e_ints -qp_name mo_two_e_erf_integrals --rename=mo_two_e_erf_ints -qp_name ao_two_e_erf_integrals --rename=ao_two_e_erf_ints -qp_name ezfio_set_mo_two_e_ints_io_mo_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_set_ao_two_e_ints_io_ao_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals -qp_name mo_tot_num -r mo_num -qp_name ezfio_set_mo_basis_mo_tot_num -r ezfio_set_mo_basis_mo_num -qp_name ezfio_get_mo_basis_mo_tot_num -r ezfio_get_mo_basis_mo_num -qp_name ezfio_set_ao_two_e_integrals_disk_access_ao_integrals -r ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals -qp_name ezfio_set_mo_two_e_integrals_disk_access_mo_integrals -r ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -qp_name ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_get_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_get_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals -qp_name ezfio_get_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_get_ao_two_e_ints_io_ao_two_e_integrals -qp_name ezfio_set_ao_two_e_erf_integrals_disk_access_ao_integrals_erf -r ezfio_set_ao_two_e_erf_ints_io_ao_two_e_integrals_erf -qp_name ezfio_set_mo_two_e_erf_integrals_disk_access_mo_integrals_erf -r ezfio_set_mo_two_e_erf_ints_io_mo_two_e_integrals_erf -qp_name disk_access_ao_integrals_erf -r io_ao_integrals_erf -qp_name disk_access_mo_integrals_erf -r io_mo_integrals_erf -qp_name write_mo_integrals_erf -r write_mo_two_e_integrals_erf -qp_name read_mo_integrals_erf -r read_mo_two_e_integrals_erf -qp_name ao_integrals_n_e -qp_name ao_nucl_elec_interals -r ao_integrals_n_e -qp_name ao_nucl_elec_integrals -r ao_integrals_n_e -qp_name ao_nucl_elec_integrals_per_atom -r ao_integrals_n_e_per_atom -qp_name bi_elec_ref_bitmask_energy -r ref_bitmask_two_e_energy -qp_name mono_elec_ref_bitmask_energy -r ref_bitmask_one_e_energy +qp_name io_mo_integrals --rename="io_mo_two_e_integrals" +qp_name io_mo_integrals --rename=io_mo_two_e_integrals +qp_name is_connected_to_by_mono -r is_connected_to_by_single +qp_name i_Wee_j_mono -r i_Wee_j_single +qp_name I_x1_pol_mult_mono_elec -r I_x1_pol_mult_one_e +qp_name I_x2_pol_mult_mono_elec -r I_x2_pol_mult_one_e qp_name kinetic_ref_bitmask_energy -r ref_bitmask_kinetic_energy -qp_name nucl_elec_ref_bitmask_energy -r ref_bitmask_e_n_energy -qp_name disk_access_ao_integrals_erf +qp_name mo_bielec_integral_erf -r mo_two_e_integral_erf qp_name mo_bielec_integral_jj -qp_name mo_bielec_integral_jj -r mo_two_e_integrals_jj -qp_name mo_bielec_integral_jj_anti -r mo_two_e_integrals_jj_anti -qp_name mo_bielec_integral_jj_anti_from_ao -r mo_two_e_integrals_jj_anti_from_ao qp_name mo_bielec_integral_jj_anti_exchange -r mo_two_e_integrals_jj_exchange -qp_name mo_bielec_integral_jj_exchange -r mo_two_e_integrals_jj_exchange +qp_name mo_bielec_integral_jj_anti_from_ao -r mo_two_e_integrals_jj_anti_from_ao +qp_name mo_bielec_integral_jj_anti -r mo_two_e_integrals_jj_anti qp_name mo_bielec_integral_jj_exchange_from_ao -r mo_two_e_integrals_jj_exchange_from_ao +qp_name mo_bielec_integral_jj_exchange -r mo_two_e_integrals_jj_exchange +qp_name mo_bielec_integral_jj_from_ao -r mo_two_e_integral_jj_from_ao +qp_name mo_bielec_integral_jj -r mo_two_e_integrals_jj +qp_name mo_bielec_integral -r mo_two_e_integral +qp_name mo_bielec_integrals_erf_index -r mo_two_e_integrals_erf_index +qp_name mo_bielec_integrals_erf_in_map -r mo_two_e_integrals_erf_in_map +qp_name mo_bielec_integrals_ij -r mo_two_e_integrals_ij +qp_name mo_bielec_integrals_index -r mo_two_e_integrals_index +qp_name mo_bielec_integrals_in_map -r mo_two_e_integrals_in_map qp_name mo_bielec_integral_vv_anti_from_ao -r mo_two_e_integrals_vv_anti_from_ao qp_name mo_bielec_integral_vv_exchange_from_ao -r mo_two_e_integrals_vv_exchange_from_ao qp_name mo_bielec_integral_vv_from_ao -r mo_two_e_integrals_vv_from_ao -qp_name mo_bielec_integrals_erf_in_map -r mo_two_e_integrals_erf_in_map -qp_name mo_bielec_integrals_in_map -r mo_two_e_integrals_in_map -qp_name ao_bielec_integrals_in_map -r ao_two_e_integrals_in_map -qp_name ao_bielec_integrals_erf_in_map -r ao_two_e_integrals_erf_in_map -qp_name mo_mono_elec_integrals -r mo_one_e_integrals -qp_name mo_nucl_elec_integrals -r mo_integrals_n_e -qp_name mo_nucl_elec_integrals_per_atom -r mo_integrals_n_e_per_atom -qp_name I_x1_pol_mult_mono_elec -r I_x1_pol_mult_one_e -qp_name I_x2_pol_mult_mono_elec -r I_x2_pol_mult_one_e -qp_name give_polynom_mult_center_mono_elec -r give_polynomial_mult_center_one_e -qp_name give_polynom_mult_center_mono_elec_erf -r give_polynomial_mult_center_one_e_erf -qp_name give_polynom_mult_center_mono_elec_erf_opt -r give_polynomial_mult_center_one_e_erf_opt -qp_name i_H_j_mono_spin_monoelec -r i_H_j_mono_spin_one_e -qp_name diag_H_mat_elem_monoelec -r diag_H_mat_elem_one_e -qp_name i_H_j_monoelec -r i_H_j_one_e -qp_name get_mo_bielec_integral -r get_two_e_integral -qp_name ao_bielec_integrals_in_map_slave_tcp -r ao_two_e_integrals_in_map_slave_tcp -qp_name get_ao_bielec_integrals_non_zero -r get_ao_two_e_integrals_non_zero -qp_name bielec -qp_name bielec -r two-electron -qp_name ao_bielec_integral -r ao_two_e_integral -qp_name compute_ao_bielec_integrals -r compute_ao_two_e_integrals -qp_name mo_bielec_integral_jj_from_ao -r mo_two_e_integral_jj_from_ao -qp_name bielec_tmp_1 -r two_e_tmp_1 -qp_name bielec_tmp_2 -r two_e_tmp_2 -qp_name bielec_tmp_3 -r two_e_tmp_3 -qp_name mo_bielec_integrals_index -r mo_two_e_integrals_index -qp_name bielec_tmp_0_idx -r two_e_tmp_0_idx -qp_name bielec_tmp_0 -r two_e_tmp_0 -qp_name get_ao_bielec_integrals -r get_ao_two_e_integrals -qp_name bielectronic -r two-electron -qp_name bielec_integrals_index -r two_e_integrals_index -qp_name mo_bielec_integral -r mo_two_e_integral -qp_name mo_bielec_integrals_ij -r mo_two_e_integrals_ij -qp_name get_mo_bielec_integrals_ij -r get_mo_two_e_integrals_ij -qp_name get_mo_bielec_integrals_i1j1 -r get_mo_two_e_integrals_i1j1 -qp_name get_mo_bielec_integrals_coulomb -r get_mo_two_e_integrals_coulomb -qp_name get_mo_bielec_integrals_coulomb_ii -r get_mo_two_e_integrals_coulomb_ii -qp_name get_mo_bielec_integrals_exch_ii -r get_mo_two_e_integrals_exch_ii -qp_name get_mo_bielec_integrals -r get_mo_two_e_integrals -qp_name get_ao_bielec_integrals_erf -r get_ao_two_e_integrals_erf -qp_name save_erf_bielec_ints_mo_into_ints_mo -r save_erf_two_e_ints_mo_into_ints_mo -qp_name get_mo_bielec_integral_erf -r get_mo_two_e_integral_erf -qp_name get_ao_bielec_integral_erf -r get_ao_two_e_integral_erf -qp_name bielec_integrals_index_reverse -r two_e_integrals_index_reverse -qp_name get_mo_bielec_integrals_erf -r get_mo_two_e_integrals_erf -qp_name ao_bielec_integral_schwartz -r ao_two_e_integral_schwartz -qp_name get_mo_bielec_integrals_erf_ij -r get_mo_two_e_integrals_erf_ij -qp_name get_mo_bielec_integrals_erf_i1j1 -r get_mo_two_e_integrals_erf_i1j1 -qp_name get_mo_bielec_integral_schwartz -r get_mo_two_e_integral_schwartz -qp_name get_ao_bielec_integrals_erf_non_zero -r get_ao_two_e_integrals_erf_non_zero -qp_name compute_ao_bielec_integrals_erf -r compute_ao_two_e_integrals_erf -qp_name mo_bielec_integrals_erf_index -r mo_two_e_integrals_erf_index -qp_name get_mo_bielec_integrals_erf_exch_ii -r get_mo_two_e_integrals_erf_exch_ii -qp_name get_mo_bielec_integrals_erf_coulomb_ii -r get_mo_two_e_integrals_erf_coulomb_ii -qp_name mo_bielec_integral_erf -r mo_two_e_integral_erf -qp_name i_H_j_bielec -r i_H_j_two_e -qp_name H_S2_u_0_bielec_nstates_openmp_work -r H_S2_u_0_two_e_nstates_openmp_work -qp_name H_S2_u_0_bielec_nstates_openmp_work_1 -r H_S2_u_0_two_e_nstates_openmp_work_1 -qp_name H_S2_u_0_bielec_nstates_openmp_work_2 -r H_S2_u_0_two_e_nstates_openmp_work_2 -qp_name H_S2_u_0_bielec_nstates_openmp_work_3 -r H_S2_u_0_two_e_nstates_openmp_work_3 -qp_name H_S2_u_0_bielec_nstates_openmp_work_4 -r H_S2_u_0_two_e_nstates_openmp_work_4 -qp_name H_S2_u_0_bielec_nstates_openmp -r H_S2_u_0_two_e_nstates_openmp -qp_name ac_operator_bielec -r ac_operator_two_e -qp_name aa_operator_bielec -r aa_operator_two_e -qp_name a_operator_bielec -r a_operator_two_e -qp_name u_0_H_u_0_bielec -r u_0_H_u_0_two_e -qp_name H_S2_u_0_bielec_nstates_openmp_work_ -qp_name H_S2_u_0_bielec_nstates_openmp_work_ -qp_name H_S2_u_0_bielec_nstates_openmp_work_ -r H_S2_u_0_two_e_nstates_openmp_work_ -qp_name ao_bielec_integral_erf -r ao_two_e_integral_erf -qp_name psi_energy_bielec -r psi_energy_two_e -qp_name ao_bielec_integrals_in_map_slave_inproc -r ao_two_e_integrals_in_map_slave_inproc -qp_name ao_bielec_integrals_in_map_collector -r ao_two_e_integrals_in_map_collector -qp_name ao_bielec_integral_schwartz_accel -r ao_two_e_integral_schwartz_accel -qp_name get_ao_bielec_integral -r get_ao_two_e_integral -qp_name ao_bielec_integrals_in_map_slave -r ao_two_e_integrals_in_map_slave -qp_name ao_bielec_integral_erf_schwartz -r ao_two_e_integral_erf_schwartz -qp_name ao_bielec_integral_schwartz_accel_erf -r ao_two_e_integral_schwartz_accel_erf -qp_name ao_bielec_integrals_erf_in_map_slave_tcp -r ao_two_e_integrals_erf_in_map_slave_tcp -qp_name ao_bielec_integrals_erf_in_map_slave -r ao_two_e_integrals_erf_in_map_slave -qp_name ao_bielec_integrals_erf_in_map_slave_inproc -r ao_two_e_integrals_erf_in_map_slave_inproc -qp_name ao_bielec_integrals_erf_in_map_collector -r ao_two_e_integrals_erf_in_map_collector -qp_name save_erf_bielec_ints_ao_into_ints_ao -r save_erf_two_e_ints_ao_into_ints_ao -qp_name save_erf_bi_elec_integrals_mo -r save_erf_two_e_integrals_mo -qp_name ao_bi_elec_integral_beta -r ao_two_e_integral_beta -qp_name ao_bi_elec_integral_alpha -r ao_two_e_integral_alpha -qp_name ao_bi_elec_integral_alpha_tmp -r ao_two_e_integral_alpha_tmp -qp_name ao_bi_elec_integral_beta_tmp -r ao_two_e_integral_beta_tmp -qp_name data_one_body_alpha_dm_mo -r data_one_body_dm_alpha_mo -qp_name data_one_body_beta_dm_mo -r data_one_body_dm_beta_mo -qp_name one_body_dm_alpha_ao_for_dft -r one_e_dm_alpha_ao_for_dft -qp_name one_body_dm_alpha_at_r -r one_e_dm_alpha_at_r -qp_name one_body_dm_ao_alpha -r one_e_dm_ao_alpha -qp_name one_body_dm_ao_beta -r one_e_dm_ao_beta -qp_name one_body_dm_average_mo_for_dft -r one_e_dm_average_mo_for_dft -qp_name one_body_dm_beta_ao_for_dft -r one_e_dm_beta_ao_for_dft -qp_name one_body_dm_beta_at_r -r one_e_dm_beta_at_r -qp_name one_body_dm_dagger_mo_spin_index -r one_e_dm_dagger_mo_spin_index -qp_name one_body_dm_mo -r one_e_dm_mo -qp_name one_body_dm_mo_alpha -r one_e_dm_mo_alpha -qp_name one_body_dm_mo_alpha_average -r one_e_dm_mo_alpha_average -qp_name one_body_dm_mo_alpha_for_dft -r one_e_dm_mo_alpha_for_dft -qp_name one_body_dm_mo_beta -r one_e_dm_mo_beta -qp_name one_body_dm_mo_beta_average -r one_e_dm_mo_beta_average -qp_name one_body_dm_mo_beta_for_dft -r one_e_dm_mo_beta_for_dft -qp_name one_body_dm_mo_diff -r one_e_dm_mo_diff -qp_name one_body_dm_mo_for_dft -r one_e_dm_mo_for_dft -qp_name one_body_dm_mo_spin_index -r one_e_dm_mo_spin_index -qp_name one_body_grad_2_dm_alpha_at_r -r one_e_grad_2_dm_alpha_at_r -qp_name one_body_grad_2_dm_beta_at_r -r one_e_grad_2_dm_beta_at_r -qp_name one_body_spin_density_ao -r one_e_spin_density_ao -qp_name one_body_spin_density_mo -r one_e_spin_density_mo -qp_name one_electron_energy -r one_e_energy -qp_name one_dm_alpha_in_r -r one_e_dm_alpha_in_r -qp_name one_dm_and_grad_alpha_in_r -r one_e_dm_and_grad_alpha_in_r -qp_name one_dm_and_grad_beta_in_r -r one_e_dm_and_grad_beta_in_r -qp_name one_dm_beta_in_r -r one_e_dm_beta_in_r -qp_name ezfio_set_aux_quantities_data_one_body_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -qp_name ezfio_set_aux_quantities_data_one_body_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_beta_dm_mo -qp_name data_one_body_dm_alpha_mo -r data_one_e_dm_alpha_mo -qp_name data_one_body_dm_beta_mo -r data_one_e_dm_beta_mo -qp_name save_one_body_dm -r save_one_e_dm -qp_name ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_alpha_mo -qp_name ezfio_set_aux_quantities_data_one_e_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_beta_mo -qp_name two_electron_energy -r two_e_energy -qp_name do_mono_excitation -r do_single_excitation -qp_name get_mono_excitation -r get_single_excitation -qp_name get_mono_excitation_from_fock -r get_single_excitation_from_fock -qp_name is_connected_to_by_mono -r is_connected_to_by_single -qp_name connected_to_ref_by_mono -r connected_to_ref_by_single -qp_name mono_excitation_wee -r single_excitation_wee -qp_name get_mono_excitation_spin -qp_name get_mono_excitation_spin -r get_single_excitation_spin -qp_name get_excitation_degree_vector_mono -r get_excitation_degree_vector_single -qp_name get_excitation_degree_vector_mono_or_exchange -r get_excitation_degree_vector_single_or_exchange_or_exchange -qp_name get_excitation_degree_vector_single_or_exchange_or_exchange -r get_excitation_degree_vector_single_or_exchange -qp_name get_excitation_degree_vector_mono_or_exchange_verbose -r get_excitation_degree_vector_single_or_exchange_verbose -qp_name i_h_j_mono_spin -r i_h_j_single_spin -qp_name i_Wee_j_mono -r i_Wee_j_single -qp_name potential_sr_x_alpha_ao_lda --rename=potential_x_alpha_ao_sr_lda -qp_name potential_sr_x_beta_ao_lda --rename=potential_x_beta_ao_sr_lda -qp_name potential_sr_c_alpha_ao_lda --rename=potential_c_alpha_ao_sr_lda -qp_name potential_sr_c_beta_ao_lda --rename=potential_c_beta_ao_sr_lda -qp_name potential_sr_xc_alpha_ao_lda --rename=potential_xc_alpha_ao_sr_lda -qp_name potential_sr_xc_beta_ao_lda --rename=potential_xc_beta_ao_sr_lda -qp_name potential_sr_x_alpha_ao_pbe --rename=potential_x_alpha_ao_sr_pbe -qp_name potential_sr_x_beta_ao_pbe --rename=potential_x_beta_ao_sr_pbe -qp_name potential_sr_c_alpha_ao_pbe --rename=potential_c_alpha_ao_sr_pbe -qp_name potential_sr_c_beta_ao_pbe --rename=potential_c_beta_ao_sr_pbe -qp_name potential_sr_xc_alpha_ao_pbe --rename=potential_xc_alpha_ao_sr_pbe -qp_name potential_sr_xc_beta_ao_pbe --rename=potential_xc_beta_ao_sr_pbe -qp_name mo_mono_elec_integral --rename=mo_mono_elec_integrals -qp_name mo_mono_elec_integral --rename=mo_mono_elec_integrals -qp_name mo_nucl_elec_integral --rename=mo_nucl_elec_integrals qp_name mo_kinetic_integral --rename=mo_kinetic_integrals -qp_name disk_access_mo_one_integrals --rename=io_mo_one_e_integrals -qp_name disk_access_ao_one_integrals --rename=io_ao_one_e_integrals -qp_name ao_mono_elec_integral --rename=ao_one_e_integrals -qp_name disk_access_ao_integrals --rename=io_ao_two_e_integrals -qp_name disk_access_mo_integrals --rename=io_mo_two_e_integrals -qp_name io_mo_integrals --rename=io_mo_two_e_integrals -qp_name io_ao_integrals --rename=io_ao_two_e_integrals -qp_name read_ao_integrals --rename=read_ao_two_e_integrals -qp_name read_mo_integrals --rename=read_mo_two_e_integrals -qp_name write_mo_integrals --rename=write_mo_two_e_integrals -qp_name write_ao_integrals --rename=write_ao_two_e_integrals -qp_name ao_two_e_integrals --rename=ao_two_e_ints -qp_name mo_two_e_integrals --rename=mo_two_e_ints -qp_name mo_two_e_erf_integrals --rename=mo_two_e_erf_ints -qp_name ao_two_e_erf_integrals --rename=ao_two_e_erf_ints -qp_name ezfio_set_mo_two_e_ints_io_mo_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_set_ao_two_e_ints_io_ao_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals -qp_name mo_tot_num -r mo_num -qp_name ezfio_set_mo_basis_mo_tot_num -r ezfio_set_mo_basis_mo_num -qp_name ezfio_get_mo_basis_mo_tot_num -r ezfio_get_mo_basis_mo_num -qp_name ezfio_set_ao_two_e_integrals_disk_access_ao_integrals -r ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals -qp_name ezfio_set_mo_two_e_integrals_disk_access_mo_integrals -r ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -qp_name ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_get_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_get_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals -qp_name ezfio_get_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_get_ao_two_e_ints_io_ao_two_e_integrals -qp_name ezfio_set_ao_two_e_erf_integrals_disk_access_ao_integrals_erf -r ezfio_set_ao_two_e_erf_ints_io_ao_two_e_integrals_erf -qp_name ezfio_set_mo_two_e_erf_integrals_disk_access_mo_integrals_erf -r ezfio_set_mo_two_e_erf_ints_io_mo_two_e_integrals_erf -qp_name disk_access_ao_integrals_erf -r io_ao_integrals_erf -qp_name disk_access_mo_integrals_erf -r io_mo_integrals_erf -qp_name write_mo_integrals_erf -r write_mo_two_e_integrals_erf -qp_name read_mo_integrals_erf -r read_mo_two_e_integrals_erf -qp_name ao_integrals_n_e -qp_name ao_nucl_elec_interals -r ao_integrals_n_e -qp_name ao_nucl_elec_integrals -r ao_integrals_n_e -qp_name ao_nucl_elec_integrals_per_atom -r ao_integrals_n_e_per_atom -qp_name bi_elec_ref_bitmask_energy -r ref_bitmask_two_e_energy +qp_name mo_mono_elec_integral --rename=mo_mono_elec_integrals +qp_name mo_mono_elec_integrals -r mo_one_e_integrals qp_name mono_elec_ref_bitmask_energy -r ref_bitmask_one_e_energy -qp_name kinetic_ref_bitmask_energy -r ref_bitmask_kinetic_energy +qp_name mono_excitation_wee -r single_excitation_wee +qp_name mo_nucl_elec_integral --rename=mo_nucl_elec_integrals +qp_name mo_nucl_elec_integrals_per_atom -r mo_integrals_n_e_per_atom +qp_name mo_nucl_elec_integrals -r mo_integrals_n_e +qp_name mo_nucl_elec_integrals -r mo_integrals_n_e +qp_name mo_tot_num -r mo_num +qp_name mo_two_e_erf_integrals --rename="mo_two_e_erf_ints" +qp_name mo_two_e_erf_integrals --rename=mo_two_e_erf_ints +qp_name mo_two_e_integrals --rename="mo_two_e_ints" +qp_name mo_two_e_integrals --rename=mo_two_e_ints qp_name nucl_elec_ref_bitmask_energy -r ref_bitmask_n_e_energy -qp_name disk_access_ao_integrals_erf -qp_name mo_bielec_integral_jj -qp_name mo_bielec_integral_jj -r mo_two_e_integrals_jj -qp_name mo_bielec_integral_jj_anti -r mo_two_e_integrals_jj_anti -qp_name mo_bielec_integral_jj_anti_from_ao -r mo_two_e_integrals_jj_anti_from_ao -qp_name mo_bielec_integral_jj_anti_exchange -r mo_two_e_integrals_jj_exchange -qp_name mo_bielec_integral_jj_exchange -r mo_two_e_integrals_jj_exchange -qp_name mo_bielec_integral_jj_exchange_from_ao -r mo_two_e_integrals_jj_exchange_from_ao -qp_name mo_bielec_integral_vv_anti_from_ao -r mo_two_e_integrals_vv_anti_from_ao -qp_name mo_bielec_integral_vv_exchange_from_ao -r mo_two_e_integrals_vv_exchange_from_ao -qp_name mo_bielec_integral_vv_from_ao -r mo_two_e_integrals_vv_from_ao -qp_name mo_bielec_integrals_erf_in_map -r mo_two_e_integrals_erf_in_map -qp_name mo_bielec_integrals_in_map -r mo_two_e_integrals_in_map -qp_name ao_bielec_integrals_in_map -r ao_two_e_integrals_in_map -qp_name ao_bielec_integrals_erf_in_map -r ao_two_e_integrals_erf_in_map -qp_name mo_mono_elec_integrals -r mo_one_e_integrals -qp_name mo_nucl_elec_integrals -r mo_integrals_n_e -qp_name mo_nucl_elec_integrals_per_atom -r mo_integrals_n_e_per_atom -qp_name I_x1_pol_mult_mono_elec -r I_x1_pol_mult_one_e -qp_name I_x2_pol_mult_mono_elec -r I_x2_pol_mult_one_e -qp_name give_polynom_mult_center_mono_elec -r give_polynomial_mult_center_one_e -qp_name give_polynom_mult_center_mono_elec_erf -r give_polynomial_mult_center_one_e_erf -qp_name give_polynom_mult_center_mono_elec_erf_opt -r give_polynomial_mult_center_one_e_erf_opt -qp_name i_H_j_mono_spin_monoelec -r i_H_j_mono_spin_one_e -qp_name diag_H_mat_elem_monoelec -r diag_H_mat_elem_one_e -qp_name i_H_j_monoelec -r i_H_j_one_e -qp_name get_mo_bielec_integral -r get_two_e_integral -qp_name ao_bielec_integrals_in_map_slave_tcp -r ao_two_e_integrals_in_map_slave_tcp -qp_name get_ao_bielec_integrals_non_zero -r get_ao_two_e_integrals_non_zero -qp_name bielec -qp_name bielec -r two-electron -qp_name ao_bielec_integral -r ao_two_e_integral -qp_name compute_ao_bielec_integrals -r compute_ao_two_e_integrals -qp_name mo_bielec_integral_jj_from_ao -r mo_two_e_integral_jj_from_ao -qp_name bielec_tmp_1 -r two_e_tmp_1 -qp_name bielec_tmp_2 -r two_e_tmp_2 -qp_name bielec_tmp_3 -r two_e_tmp_3 -qp_name mo_bielec_integrals_index -r mo_two_e_integrals_index -qp_name bielec_tmp_0_idx -r two_e_tmp_0_idx -qp_name bielec_tmp_0 -r two_e_tmp_0 -qp_name get_ao_bielec_integrals -r get_ao_two_e_integrals -qp_name bielectronic -r two-electron -qp_name bielec_integrals_index -r two_e_integrals_index -qp_name mo_bielec_integral -r mo_two_e_integral -qp_name mo_bielec_integrals_ij -r mo_two_e_integrals_ij -qp_name get_mo_bielec_integrals_ij -r get_mo_two_e_integrals_ij -qp_name get_mo_bielec_integrals_i1j1 -r get_mo_two_e_integrals_i1j1 -qp_name get_mo_bielec_integrals_coulomb -r get_mo_two_e_integrals_coulomb -qp_name get_mo_bielec_integrals_coulomb_ii -r get_mo_two_e_integrals_coulomb_ii -qp_name get_mo_bielec_integrals_exch_ii -r get_mo_two_e_integrals_exch_ii -qp_name get_mo_bielec_integrals -r get_mo_two_e_integrals -qp_name get_ao_bielec_integrals_erf -r get_ao_two_e_integrals_erf -qp_name save_erf_bielec_ints_mo_into_ints_mo -r save_erf_two_e_ints_mo_into_ints_mo -qp_name get_mo_bielec_integral_erf -r get_mo_two_e_integral_erf -qp_name get_ao_bielec_integral_erf -r get_ao_two_e_integral_erf -qp_name bielec_integrals_index_reverse -r two_e_integrals_index_reverse -qp_name get_mo_bielec_integrals_erf -r get_mo_two_e_integrals_erf -qp_name ao_bielec_integral_schwartz -r ao_two_e_integral_schwartz -qp_name get_mo_bielec_integrals_erf_ij -r get_mo_two_e_integrals_erf_ij -qp_name get_mo_bielec_integrals_erf_i1j1 -r get_mo_two_e_integrals_erf_i1j1 -qp_name get_mo_bielec_integral_schwartz -r get_mo_two_e_integral_schwartz -qp_name get_ao_bielec_integrals_erf_non_zero -r get_ao_two_e_integrals_erf_non_zero -qp_name compute_ao_bielec_integrals_erf -r compute_ao_two_e_integrals_erf -qp_name mo_bielec_integrals_erf_index -r mo_two_e_integrals_erf_index -qp_name get_mo_bielec_integrals_erf_exch_ii -r get_mo_two_e_integrals_erf_exch_ii -qp_name get_mo_bielec_integrals_erf_coulomb_ii -r get_mo_two_e_integrals_erf_coulomb_ii -qp_name mo_bielec_integral_erf -r mo_two_e_integral_erf -qp_name i_H_j_bielec -r i_H_j_two_e -qp_name H_S2_u_0_bielec_nstates_openmp_work -r H_S2_u_0_two_e_nstates_openmp_work -qp_name H_S2_u_0_bielec_nstates_openmp_work_1 -r H_S2_u_0_two_e_nstates_openmp_work_1 -qp_name H_S2_u_0_bielec_nstates_openmp_work_2 -r H_S2_u_0_two_e_nstates_openmp_work_2 -qp_name H_S2_u_0_bielec_nstates_openmp_work_3 -r H_S2_u_0_two_e_nstates_openmp_work_3 -qp_name H_S2_u_0_bielec_nstates_openmp_work_4 -r H_S2_u_0_two_e_nstates_openmp_work_4 -qp_name H_S2_u_0_bielec_nstates_openmp -r H_S2_u_0_two_e_nstates_openmp -qp_name ac_operator_bielec -r ac_operator_two_e -qp_name aa_operator_bielec -r aa_operator_two_e -qp_name a_operator_bielec -r a_operator_two_e -qp_name u_0_H_u_0_bielec -r u_0_H_u_0_two_e -qp_name H_S2_u_0_bielec_nstates_openmp_work_ -qp_name H_S2_u_0_bielec_nstates_openmp_work_ -qp_name H_S2_u_0_bielec_nstates_openmp_work_ -r H_S2_u_0_two_e_nstates_openmp_work_ -qp_name ao_bielec_integral_erf -r ao_two_e_integral_erf -qp_name psi_energy_bielec -r psi_energy_two_e -qp_name ao_bielec_integrals_in_map_slave_inproc -r ao_two_e_integrals_in_map_slave_inproc -qp_name ao_bielec_integrals_in_map_collector -r ao_two_e_integrals_in_map_collector -qp_name ao_bielec_integral_schwartz_accel -r ao_two_e_integral_schwartz_accel -qp_name get_ao_bielec_integral -r get_ao_two_e_integral -qp_name ao_bielec_integrals_in_map_slave -r ao_two_e_integrals_in_map_slave -qp_name ao_bielec_integral_erf_schwartz -r ao_two_e_integral_erf_schwartz -qp_name ao_bielec_integral_schwartz_accel_erf -r ao_two_e_integral_schwartz_accel_erf -qp_name ao_bielec_integrals_erf_in_map_slave_tcp -r ao_two_e_integrals_erf_in_map_slave_tcp -qp_name ao_bielec_integrals_erf_in_map_slave -r ao_two_e_integrals_erf_in_map_slave -qp_name ao_bielec_integrals_erf_in_map_slave_inproc -r ao_two_e_integrals_erf_in_map_slave_inproc -qp_name ao_bielec_integrals_erf_in_map_collector -r ao_two_e_integrals_erf_in_map_collector -qp_name save_erf_bielec_ints_ao_into_ints_ao -r save_erf_two_e_ints_ao_into_ints_ao -qp_name save_erf_bi_elec_integrals_mo -r save_erf_two_e_integrals_mo -qp_name ao_bi_elec_integral_beta -r ao_two_e_integral_beta -qp_name ao_bi_elec_integral_alpha -r ao_two_e_integral_alpha -qp_name ao_bi_elec_integral_alpha_tmp -r ao_two_e_integral_alpha_tmp -qp_name ao_bi_elec_integral_beta_tmp -r ao_two_e_integral_beta_tmp -qp_name data_one_body_alpha_dm_mo -r data_one_body_dm_alpha_mo -qp_name data_one_body_beta_dm_mo -r data_one_body_dm_beta_mo qp_name one_body_dm_alpha_ao_for_dft -r one_e_dm_alpha_ao_for_dft qp_name one_body_dm_alpha_at_r -r one_e_dm_alpha_at_r qp_name one_body_dm_ao_alpha -r one_e_dm_ao_alpha @@ -574,268 +184,65 @@ qp_name one_body_dm_average_mo_for_dft -r one_e_dm_average_mo_for_dft qp_name one_body_dm_beta_ao_for_dft -r one_e_dm_beta_ao_for_dft qp_name one_body_dm_beta_at_r -r one_e_dm_beta_at_r qp_name one_body_dm_dagger_mo_spin_index -r one_e_dm_dagger_mo_spin_index -qp_name one_body_dm_mo -r one_e_dm_mo -qp_name one_body_dm_mo_alpha -r one_e_dm_mo_alpha qp_name one_body_dm_mo_alpha_average -r one_e_dm_mo_alpha_average qp_name one_body_dm_mo_alpha_for_dft -r one_e_dm_mo_alpha_for_dft -qp_name one_body_dm_mo_beta -r one_e_dm_mo_beta +qp_name one_body_dm_mo_alpha -r one_e_dm_mo_alpha qp_name one_body_dm_mo_beta_average -r one_e_dm_mo_beta_average qp_name one_body_dm_mo_beta_for_dft -r one_e_dm_mo_beta_for_dft +qp_name one_body_dm_mo_beta -r one_e_dm_mo_beta qp_name one_body_dm_mo_diff -r one_e_dm_mo_diff qp_name one_body_dm_mo_for_dft -r one_e_dm_mo_for_dft +qp_name one_body_dm_mo -r one_e_dm_mo qp_name one_body_dm_mo_spin_index -r one_e_dm_mo_spin_index qp_name one_body_grad_2_dm_alpha_at_r -r one_e_grad_2_dm_alpha_at_r qp_name one_body_grad_2_dm_beta_at_r -r one_e_grad_2_dm_beta_at_r qp_name one_body_spin_density_ao -r one_e_spin_density_ao qp_name one_body_spin_density_mo -r one_e_spin_density_mo -qp_name one_electron_energy -r one_e_energy qp_name one_dm_alpha_in_r -r one_e_dm_alpha_in_r qp_name one_dm_and_grad_alpha_in_r -r one_e_dm_and_grad_alpha_in_r qp_name one_dm_and_grad_beta_in_r -r one_e_dm_and_grad_beta_in_r qp_name one_dm_beta_in_r -r one_e_dm_beta_in_r -qp_name ezfio_set_aux_quantities_data_one_body_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -qp_name ezfio_set_aux_quantities_data_one_body_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_beta_dm_mo -qp_name data_one_body_dm_alpha_mo -r data_one_e_dm_alpha_mo -qp_name data_one_body_dm_beta_mo -r data_one_e_dm_beta_mo -qp_name save_one_body_dm -r save_one_e_dm -qp_name ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_alpha_mo -qp_name ezfio_set_aux_quantities_data_one_e_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_beta_mo -qp_name two_electron_energy -r two_e_energy -qp_name do_mono_excitation -r do_single_excitation -qp_name get_mono_excitation -r get_single_excitation -qp_name get_mono_excitation_from_fock -r get_single_excitation_from_fock -qp_name is_connected_to_by_mono -r is_connected_to_by_single -qp_name connected_to_ref_by_mono -r connected_to_ref_by_single -qp_name mono_excitation_wee -r single_excitation_wee -qp_name get_mono_excitation_spin -qp_name get_mono_excitation_spin -r get_single_excitation_spin -qp_name get_excitation_degree_vector_mono -r get_excitation_degree_vector_single -qp_name get_excitation_degree_vector_mono_or_exchange -r get_excitation_degree_vector_single_or_exchange_or_exchange -qp_name get_excitation_degree_vector_single_or_exchange_or_exchange -r get_excitation_degree_vector_single_or_exchange -qp_name get_excitation_degree_vector_mono_or_exchange_verbose -r get_excitation_degree_vector_single_or_exchange_verbose -qp_name i_h_j_mono_spin -r i_h_j_single_spin -qp_name i_Wee_j_mono -r i_Wee_j_single -qp_name potential_sr_x_alpha_ao_lda --rename=potential_x_alpha_ao_sr_lda -qp_name potential_sr_x_beta_ao_lda --rename=potential_x_beta_ao_sr_lda -qp_name potential_sr_c_alpha_ao_lda --rename=potential_c_alpha_ao_sr_lda -qp_name potential_sr_c_beta_ao_lda --rename=potential_c_beta_ao_sr_lda -qp_name potential_sr_xc_alpha_ao_lda --rename=potential_xc_alpha_ao_sr_lda -qp_name potential_sr_xc_beta_ao_lda --rename=potential_xc_beta_ao_sr_lda -qp_name potential_sr_x_alpha_ao_pbe --rename=potential_x_alpha_ao_sr_pbe -qp_name potential_sr_x_beta_ao_pbe --rename=potential_x_beta_ao_sr_pbe -qp_name potential_sr_c_alpha_ao_pbe --rename=potential_c_alpha_ao_sr_pbe -qp_name potential_sr_c_beta_ao_pbe --rename=potential_c_beta_ao_sr_pbe -qp_name potential_sr_xc_alpha_ao_pbe --rename=potential_xc_alpha_ao_sr_pbe -qp_name potential_sr_xc_beta_ao_pbe --rename=potential_xc_beta_ao_sr_pbe -qp_name mo_mono_elec_integral --rename=mo_mono_elec_integrals -qp_name mo_mono_elec_integral --rename=mo_mono_elec_integrals -qp_name mo_nucl_elec_integral --rename=mo_nucl_elec_integrals -qp_name mo_kinetic_integral --rename=mo_kinetic_integrals -qp_name disk_access_mo_one_integrals --rename=io_mo_one_e_integrals -qp_name disk_access_ao_one_integrals --rename=io_ao_one_e_integrals -qp_name ao_mono_elec_integral --rename=ao_one_e_integrals -qp_name disk_access_ao_integrals --rename=io_ao_two_e_integrals -qp_name disk_access_mo_integrals --rename=io_mo_two_e_integrals -qp_name io_mo_integrals --rename=io_mo_two_e_integrals -qp_name io_ao_integrals --rename=io_ao_two_e_integrals -qp_name read_ao_integrals --rename=read_ao_two_e_integrals -qp_name read_mo_integrals --rename=read_mo_two_e_integrals -qp_name write_mo_integrals --rename=write_mo_two_e_integrals -qp_name write_ao_integrals --rename=write_ao_two_e_integrals -qp_name ao_two_e_integrals --rename=ao_two_e_ints -qp_name mo_two_e_integrals --rename=mo_two_e_ints -qp_name mo_two_e_erf_integrals --rename=mo_two_e_erf_ints -qp_name ao_two_e_erf_integrals --rename=ao_two_e_erf_ints -qp_name ezfio_set_mo_two_e_ints_io_mo_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_set_ao_two_e_ints_io_ao_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals -qp_name mo_tot_num -r mo_num -qp_name ezfio_set_mo_basis_mo_tot_num -r ezfio_set_mo_basis_mo_num -qp_name ezfio_get_mo_basis_mo_tot_num -r ezfio_get_mo_basis_mo_num -qp_name ezfio_set_ao_two_e_integrals_disk_access_ao_integrals -r ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals -qp_name ezfio_set_mo_two_e_integrals_disk_access_mo_integrals -r ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -qp_name ezfio_set_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_set_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_get_mo_two_e_integrals_io_mo_two_e_integrals -r ezfio_get_mo_two_e_ints_io_mo_two_e_integrals -qp_name ezfio_set_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_set_ao_two_e_ints_io_ao_two_e_integrals -qp_name ezfio_get_ao_two_e_integrals_io_ao_two_e_integrals -r ezfio_get_ao_two_e_ints_io_ao_two_e_integrals -qp_name ezfio_set_ao_two_e_erf_integrals_disk_access_ao_integrals_erf -r ezfio_set_ao_two_e_erf_ints_io_ao_two_e_integrals_erf -qp_name ezfio_set_mo_two_e_erf_integrals_disk_access_mo_integrals_erf -r ezfio_set_mo_two_e_erf_ints_io_mo_two_e_integrals_erf -qp_name disk_access_ao_integrals_erf -r io_ao_integrals_erf -qp_name disk_access_mo_integrals_erf -r io_mo_integrals_erf -qp_name write_mo_integrals_erf -r write_mo_two_e_integrals_erf -qp_name read_mo_integrals_erf -r read_mo_two_e_integrals_erf -qp_name ao_integrals_n_e -qp_name ao_nucl_elec_interals -r ao_integrals_n_e -qp_name ao_nucl_elec_integrals -r ao_integrals_n_e -qp_name ao_nucl_elec_integrals_per_atom -r ao_integrals_n_e_per_atom -qp_name bi_elec_ref_bitmask_energy -r ref_bitmask_two_e_energy -qp_name mono_elec_ref_bitmask_energy -r ref_bitmask_one_e_energy -qp_name kinetic_ref_bitmask_energy -r ref_bitmask_kinetic_energy -qp_name nucl_elec_ref_bitmask_energy -r ref_bitmask_e_n_energy -qp_name disk_access_ao_integrals_erf -qp_name mo_bielec_integral_jj -qp_name mo_bielec_integral_jj -r mo_two_e_integrals_jj -qp_name mo_bielec_integral_jj_anti -r mo_two_e_integrals_jj_anti -qp_name mo_bielec_integral_jj_anti_from_ao -r mo_two_e_integrals_jj_anti_from_ao -qp_name mo_bielec_integral_jj_anti_exchange -r mo_two_e_integrals_jj_exchange -qp_name mo_bielec_integral_jj_exchange -r mo_two_e_integrals_jj_exchange -qp_name mo_bielec_integral_jj_exchange_from_ao -r mo_two_e_integrals_jj_exchange_from_ao -qp_name mo_bielec_integral_vv_anti_from_ao -r mo_two_e_integrals_vv_anti_from_ao -qp_name mo_bielec_integral_vv_exchange_from_ao -r mo_two_e_integrals_vv_exchange_from_ao -qp_name mo_bielec_integral_vv_from_ao -r mo_two_e_integrals_vv_from_ao -qp_name mo_bielec_integrals_erf_in_map -r mo_two_e_integrals_erf_in_map -qp_name mo_bielec_integrals_in_map -r mo_two_e_integrals_in_map -qp_name ao_bielec_integrals_in_map -r ao_two_e_integrals_in_map -qp_name ao_bielec_integrals_erf_in_map -r ao_two_e_integrals_erf_in_map -qp_name mo_mono_elec_integrals -r mo_one_e_integrals -qp_name mo_nucl_elec_integrals -r mo_integrals_n_e -qp_name mo_nucl_elec_integrals_per_atom -r mo_integrals_n_e_per_atom -qp_name I_x1_pol_mult_mono_elec -r I_x1_pol_mult_one_e -qp_name I_x2_pol_mult_mono_elec -r I_x2_pol_mult_one_e -qp_name give_polynom_mult_center_mono_elec -r give_polynomial_mult_center_one_e -qp_name give_polynom_mult_center_mono_elec_erf -r give_polynomial_mult_center_one_e_erf -qp_name give_polynom_mult_center_mono_elec_erf_opt -r give_polynomial_mult_center_one_e_erf_opt -qp_name i_H_j_mono_spin_monoelec -r i_H_j_mono_spin_one_e -qp_name diag_H_mat_elem_monoelec -r diag_H_mat_elem_one_e -qp_name i_H_j_monoelec -r i_H_j_one_e -qp_name get_mo_bielec_integral -r get_two_e_integral -qp_name ao_bielec_integrals_in_map_slave_tcp -r ao_two_e_integrals_in_map_slave_tcp -qp_name get_ao_bielec_integrals_non_zero -r get_ao_two_e_integrals_non_zero -qp_name bielec -qp_name bielec -r two-electron -qp_name ao_bielec_integral -r ao_two_e_integral -qp_name compute_ao_bielec_integrals -r compute_ao_two_e_integrals -qp_name mo_bielec_integral_jj_from_ao -r mo_two_e_integral_jj_from_ao -qp_name bielec_tmp_1 -r two_e_tmp_1 -qp_name bielec_tmp_2 -r two_e_tmp_2 -qp_name bielec_tmp_3 -r two_e_tmp_3 -qp_name mo_bielec_integrals_index -r mo_two_e_integrals_index -qp_name bielec_tmp_0_idx -r two_e_tmp_0_idx -qp_name bielec_tmp_0 -r two_e_tmp_0 -qp_name get_ao_bielec_integrals -r get_ao_two_e_integrals -qp_name bielectronic -r two-electron -qp_name bielec_integrals_index -r two_e_integrals_index -qp_name mo_bielec_integral -r mo_two_e_integral -qp_name mo_bielec_integrals_ij -r mo_two_e_integrals_ij -qp_name get_mo_bielec_integrals_ij -r get_mo_two_e_integrals_ij -qp_name get_mo_bielec_integrals_i1j1 -r get_mo_two_e_integrals_i1j1 -qp_name get_mo_bielec_integrals_coulomb -r get_mo_two_e_integrals_coulomb -qp_name get_mo_bielec_integrals_coulomb_ii -r get_mo_two_e_integrals_coulomb_ii -qp_name get_mo_bielec_integrals_exch_ii -r get_mo_two_e_integrals_exch_ii -qp_name get_mo_bielec_integrals -r get_mo_two_e_integrals -qp_name get_ao_bielec_integrals_erf -r get_ao_two_e_integrals_erf -qp_name save_erf_bielec_ints_mo_into_ints_mo -r save_erf_two_e_ints_mo_into_ints_mo -qp_name get_mo_bielec_integral_erf -r get_mo_two_e_integral_erf -qp_name get_ao_bielec_integral_erf -r get_ao_two_e_integral_erf -qp_name bielec_integrals_index_reverse -r two_e_integrals_index_reverse -qp_name get_mo_bielec_integrals_erf -r get_mo_two_e_integrals_erf -qp_name ao_bielec_integral_schwartz -r ao_two_e_integral_schwartz -qp_name get_mo_bielec_integrals_erf_ij -r get_mo_two_e_integrals_erf_ij -qp_name get_mo_bielec_integrals_erf_i1j1 -r get_mo_two_e_integrals_erf_i1j1 -qp_name get_mo_bielec_integral_schwartz -r get_mo_two_e_integral_schwartz -qp_name get_ao_bielec_integrals_erf_non_zero -r get_ao_two_e_integrals_erf_non_zero -qp_name compute_ao_bielec_integrals_erf -r compute_ao_two_e_integrals_erf -qp_name mo_bielec_integrals_erf_index -r mo_two_e_integrals_erf_index -qp_name get_mo_bielec_integrals_erf_exch_ii -r get_mo_two_e_integrals_erf_exch_ii -qp_name get_mo_bielec_integrals_erf_coulomb_ii -r get_mo_two_e_integrals_erf_coulomb_ii -qp_name mo_bielec_integral_erf -r mo_two_e_integral_erf -qp_name i_H_j_bielec -r i_H_j_two_e -qp_name H_S2_u_0_bielec_nstates_openmp_work -r H_S2_u_0_two_e_nstates_openmp_work -qp_name H_S2_u_0_bielec_nstates_openmp_work_1 -r H_S2_u_0_two_e_nstates_openmp_work_1 -qp_name H_S2_u_0_bielec_nstates_openmp_work_2 -r H_S2_u_0_two_e_nstates_openmp_work_2 -qp_name H_S2_u_0_bielec_nstates_openmp_work_3 -r H_S2_u_0_two_e_nstates_openmp_work_3 -qp_name H_S2_u_0_bielec_nstates_openmp_work_4 -r H_S2_u_0_two_e_nstates_openmp_work_4 -qp_name H_S2_u_0_bielec_nstates_openmp -r H_S2_u_0_two_e_nstates_openmp -qp_name ac_operator_bielec -r ac_operator_two_e -qp_name aa_operator_bielec -r aa_operator_two_e -qp_name a_operator_bielec -r a_operator_two_e -qp_name u_0_H_u_0_bielec -r u_0_H_u_0_two_e -qp_name H_S2_u_0_bielec_nstates_openmp_work_ -qp_name H_S2_u_0_bielec_nstates_openmp_work_ -qp_name H_S2_u_0_bielec_nstates_openmp_work_ -r H_S2_u_0_two_e_nstates_openmp_work_ -qp_name ao_bielec_integral_erf -r ao_two_e_integral_erf -qp_name psi_energy_bielec -r psi_energy_two_e -qp_name ao_bielec_integrals_in_map_slave_inproc -r ao_two_e_integrals_in_map_slave_inproc -qp_name ao_bielec_integrals_in_map_collector -r ao_two_e_integrals_in_map_collector -qp_name ao_bielec_integral_schwartz_accel -r ao_two_e_integral_schwartz_accel -qp_name get_ao_bielec_integral -r get_ao_two_e_integral -qp_name ao_bielec_integrals_in_map_slave -r ao_two_e_integrals_in_map_slave -qp_name ao_bielec_integral_erf_schwartz -r ao_two_e_integral_erf_schwartz -qp_name ao_bielec_integral_schwartz_accel_erf -r ao_two_e_integral_schwartz_accel_erf -qp_name ao_bielec_integrals_erf_in_map_slave_tcp -r ao_two_e_integrals_erf_in_map_slave_tcp -qp_name ao_bielec_integrals_erf_in_map_slave -r ao_two_e_integrals_erf_in_map_slave -qp_name ao_bielec_integrals_erf_in_map_slave_inproc -r ao_two_e_integrals_erf_in_map_slave_inproc -qp_name ao_bielec_integrals_erf_in_map_collector -r ao_two_e_integrals_erf_in_map_collector -qp_name save_erf_bielec_ints_ao_into_ints_ao -r save_erf_two_e_ints_ao_into_ints_ao -qp_name save_erf_bi_elec_integrals_mo -r save_erf_two_e_integrals_mo -qp_name ao_bi_elec_integral_beta -r ao_two_e_integral_beta -qp_name ao_bi_elec_integral_alpha -r ao_two_e_integral_alpha -qp_name ao_bi_elec_integral_alpha_tmp -r ao_two_e_integral_alpha_tmp -qp_name ao_bi_elec_integral_beta_tmp -r ao_two_e_integral_beta_tmp -qp_name data_one_body_alpha_dm_mo -r data_one_body_dm_alpha_mo -qp_name data_one_body_beta_dm_mo -r data_one_body_dm_beta_mo -qp_name one_body_dm_alpha_ao_for_dft -r one_e_dm_alpha_ao_for_dft -qp_name one_body_dm_alpha_at_r -r one_e_dm_alpha_at_r -qp_name one_body_dm_ao_alpha -r one_e_dm_ao_alpha -qp_name one_body_dm_ao_beta -r one_e_dm_ao_beta -qp_name one_body_dm_average_mo_for_dft -r one_e_dm_average_mo_for_dft -qp_name one_body_dm_beta_ao_for_dft -r one_e_dm_beta_ao_for_dft -qp_name one_body_dm_beta_at_r -r one_e_dm_beta_at_r -qp_name one_body_dm_dagger_mo_spin_index -r one_e_dm_dagger_mo_spin_index -qp_name one_body_dm_mo -r one_e_dm_mo -qp_name one_body_dm_mo_alpha -r one_e_dm_mo_alpha -qp_name one_body_dm_mo_alpha_average -r one_e_dm_mo_alpha_average -qp_name one_body_dm_mo_alpha_for_dft -r one_e_dm_mo_alpha_for_dft -qp_name one_body_dm_mo_beta -r one_e_dm_mo_beta -qp_name one_body_dm_mo_beta_average -r one_e_dm_mo_beta_average -qp_name one_body_dm_mo_beta_for_dft -r one_e_dm_mo_beta_for_dft -qp_name one_body_dm_mo_diff -r one_e_dm_mo_diff -qp_name one_body_dm_mo_for_dft -r one_e_dm_mo_for_dft -qp_name one_body_dm_mo_spin_index -r one_e_dm_mo_spin_index -qp_name one_body_grad_2_dm_alpha_at_r -r one_e_grad_2_dm_alpha_at_r -qp_name one_body_grad_2_dm_beta_at_r -r one_e_grad_2_dm_beta_at_r -qp_name one_body_spin_density_ao -r one_e_spin_density_ao -qp_name one_body_spin_density_mo -r one_e_spin_density_mo qp_name one_electron_energy -r one_e_energy -qp_name one_dm_alpha_in_r -r one_e_dm_alpha_in_r -qp_name one_dm_and_grad_alpha_in_r -r one_e_dm_and_grad_alpha_in_r -qp_name one_dm_and_grad_beta_in_r -r one_e_dm_and_grad_beta_in_r -qp_name one_dm_beta_in_r -r one_e_dm_beta_in_r -qp_name ezfio_set_aux_quantities_data_one_body_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -qp_name ezfio_set_aux_quantities_data_one_body_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_beta_dm_mo -qp_name data_one_body_dm_alpha_mo -r data_one_e_dm_alpha_mo -qp_name data_one_body_dm_beta_mo -r data_one_e_dm_beta_mo -qp_name save_one_body_dm -r save_one_e_dm -qp_name ezfio_set_aux_quantities_data_one_e_alpha_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_alpha_mo -qp_name ezfio_set_aux_quantities_data_one_e_beta_dm_mo -r ezfio_set_aux_quantities_data_one_e_dm_beta_mo -qp_name two_electron_energy -r two_e_energy -qp_name do_mono_excitation -r do_single_excitation -qp_name get_mono_excitation -r get_single_excitation -qp_name get_mono_excitation_from_fock -r get_single_excitation_from_fock -qp_name is_connected_to_by_mono -r is_connected_to_by_single -qp_name connected_to_ref_by_mono -r connected_to_ref_by_single -qp_name mono_excitation_wee -r single_excitation_wee -qp_name get_mono_excitation_spin -qp_name get_mono_excitation_spin -r get_single_excitation_spin -qp_name get_excitation_degree_vector_mono -r get_excitation_degree_vector_single -qp_name get_excitation_degree_vector_mono_or_exchange -r get_excitation_degree_vector_single_or_exchange_or_exchange -qp_name get_excitation_degree_vector_single_or_exchange_or_exchange -r get_excitation_degree_vector_single_or_exchange -qp_name get_excitation_degree_vector_mono_or_exchange_verbose -r get_excitation_degree_vector_single_or_exchange_verbose -qp_name i_h_j_mono_spin -r i_h_j_single_spin -qp_name i_Wee_j_mono -r i_Wee_j_single -qp_name potential_sr_x_alpha_ao_lda --rename=potential_x_alpha_ao_sr_lda -qp_name potential_sr_x_beta_ao_lda --rename=potential_x_beta_ao_sr_lda qp_name potential_sr_c_alpha_ao_lda --rename=potential_c_alpha_ao_sr_lda -qp_name potential_sr_c_beta_ao_lda --rename=potential_c_beta_ao_sr_lda -qp_name potential_sr_xc_alpha_ao_lda --rename=potential_xc_alpha_ao_sr_lda -qp_name potential_sr_xc_beta_ao_lda --rename=potential_xc_beta_ao_sr_lda -qp_name potential_sr_x_alpha_ao_pbe --rename=potential_x_alpha_ao_sr_pbe -qp_name potential_sr_x_beta_ao_pbe --rename=potential_x_beta_ao_sr_pbe qp_name potential_sr_c_alpha_ao_pbe --rename=potential_c_alpha_ao_sr_pbe +qp_name potential_sr_c_beta_ao_lda --rename=potential_c_beta_ao_sr_lda +qp_name potential_sr_c_beta_ao_lda --rename=potential_c_beta_ao_sr_lda +qp_name potential_sr_c_beta_ao_pbe --rename=potential_c_beta_ao_sr_pbe qp_name potential_sr_c_beta_ao_pbe --rename=potential_c_beta_ao_sr_pbe +qp_name potential_sr_x_alpha_ao_lda --rename=potential_x_alpha_ao_sr_lda +qp_name potential_sr_x_alpha_ao_pbe --rename=potential_x_alpha_ao_sr_pbe +qp_name potential_sr_x_beta_ao_lda --rename=potential_x_beta_ao_sr_lda +qp_name potential_sr_x_beta_ao_lda --rename=potential_x_beta_ao_sr_lda +qp_name potential_sr_x_beta_ao_pbe --rename=potential_x_beta_ao_sr_pbe +qp_name potential_sr_x_beta_ao_pbe --rename=potential_x_beta_ao_sr_pbe +qp_name potential_sr_xc_alpha_ao_lda --rename=potential_xc_alpha_ao_sr_lda qp_name potential_sr_xc_alpha_ao_pbe --rename=potential_xc_alpha_ao_sr_pbe +qp_name potential_sr_xc_beta_ao_lda --rename=potential_xc_beta_ao_sr_lda +qp_name potential_sr_xc_beta_ao_lda --rename=potential_xc_beta_ao_sr_lda +qp_name potential_sr_xc_beta_ao_pbe --rename=potential_xc_beta_ao_sr_pbe qp_name potential_sr_xc_beta_ao_pbe --rename=potential_xc_beta_ao_sr_pbe +<<<<<<< HEAD qp_name disk_access_nuclear_repulsion --rename=io_nuclear_repulsion qp_name nucl_elec_ref_bitmask_energy -r ref_bitmask_n_e_energy qp_name ref_bitmask_e_n_energy -r ref_bitmask_n_e_energy qp_name read_ao_integrals_e_n -r read_ao_integrals_n_e qp_name write_ao_integrals_e_n -r write_ao_integrals_n_e +======= +qp_name psi_energy_bielec -r psi_energy_two_e +qp_name read_ao_integrals --rename="read_ao_two_e_integrals" +qp_name read_ao_integrals --rename=read_ao_two_e_integrals +qp_name read_mo_integrals_erf -r read_mo_two_e_integrals_erf +qp_name read_mo_integrals --rename="read_mo_two_e_integrals" +qp_name read_mo_integrals --rename=read_mo_two_e_integrals +qp_name ref_bitmask_e_n_energy -r ref_bitmask_n_e_energy +qp_name save_erf_bi_elec_integrals_mo -r save_erf_two_e_integrals_mo +qp_name save_erf_bielec_ints_ao_into_ints_ao -r save_erf_two_e_ints_ao_into_ints_ao +qp_name save_erf_bielec_ints_mo_into_ints_mo -r save_erf_two_e_ints_mo_into_ints_mo +qp_name save_one_body_dm -r save_one_e_dm +qp_name two_electron_energy -r two_e_energy +qp_name u_0_H_u_0_bielec -r u_0_H_u_0_two_e +qp_name write_ao_integrals --rename="write_ao_two_e_integrals" +qp_name write_ao_integrals --rename=write_ao_two_e_integrals +qp_name write_mo_integrals_erf -r write_mo_two_e_integrals_erf +qp_name write_mo_integrals --rename="write_mo_two_e_integrals" +qp_name write_mo_integrals --rename=write_mo_two_e_integrals diff --git a/bin/qp_basis b/bin/qp_basis index 87a04ccc..8722205b 100755 --- a/bin/qp_basis +++ b/bin/qp_basis @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @@ -12,7 +12,7 @@ Usage: """ -from __future__ import print_function + import sys import os import subprocess diff --git a/bin/qp_convert_output_to_ezfio b/bin/qp_convert_output_to_ezfio index 30faa686..5f0c4771 100755 --- a/bin/qp_convert_output_to_ezfio +++ b/bin/qp_convert_output_to_ezfio @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 """ convert output of GAMESS/GAU$$IAN to ezfio @@ -22,7 +22,7 @@ try: QP_ROOT = os.environ["QP_ROOT"] QP_EZFIO = os.environ["QP_EZFIO"] except KeyError: - print "Error: QP_ROOT environment variable not found." + print("Error: QP_ROOT environment variable not found.") sys.exit(1) else: sys.path = [QP_EZFIO + "/Python", @@ -30,10 +30,11 @@ else: QP_ROOT + "/install", QP_ROOT + "/scripts"] + sys.path +from resultsFile import * try: from resultsFile import * except: - print "Error: resultsFile Python library not installed" + print("Error: resultsFile Python library not installed") sys.exit(1) @@ -48,17 +49,17 @@ def write_ezfio(res, filename): # |_ | _ _ _|_ ._ _ ._ _ # |_ | (/_ (_ |_ | (_) | | _> # - print "Electrons\t...\t", + print("Electrons\t...\t", end=' ') ezfio.set_electrons_elec_alpha_num(res.num_alpha) ezfio.set_electrons_elec_beta_num(res.num_beta) - print "OK" + print("OK") # # |\ | _ | _ o # | \| |_| (_ | (/_ | # - print "Nuclei\t\t...\t", + print("Nuclei\t\t...\t", end=' ') # ~#~#~#~ # # I n i t # # ~#~#~#~ # @@ -93,24 +94,23 @@ def write_ezfio(res, filename): # Transformt H1 into H import re - p = re.compile(ur'(\d*)$') + p = re.compile(r'(\d*)$') label = [p.sub("", x.name).capitalize() for x in res.geometry] ezfio.set_nuclei_nucl_label(label) ezfio.set_nuclei_nucl_coord(coord_x + coord_y + coord_z) - print "OK" + print("OK") # _ # /\ _ _ |_) _. _ o _ # /--\ (_) _> |_) (_| _> | _> # - print "AOS\t\t...\t", + print("AOS\t\t...\t", end=' ') # ~#~#~#~ # # I n i t # # ~#~#~#~ # - import string at = [] num_prim = [] power_x = [] @@ -131,9 +131,9 @@ def write_ezfio(res, filename): at.append(i + 1) num_prim.append(len(b.prim)) s = b.sym - power_x.append(string.count(s, "x")) - power_y.append(string.count(s, "y")) - power_z.append(string.count(s, "z")) + power_x.append(str.count(s, "x")) + power_y.append(str.count(s, "y")) + power_z.append(str.count(s, "z")) coefficient.append(b.coef) exponent.append([p.expo for p in b.prim]) @@ -175,14 +175,14 @@ def write_ezfio(res, filename): ezfio.set_ao_basis_ao_expo(expo) ezfio.set_ao_basis_ao_basis("Read by resultsFile") - print "OK" + print("OK") # _ # |\/| _ _ |_) _. _ o _ # | | (_) _> |_) (_| _> | _> # - print "MOS\t\t...\t", + print("MOS\t\t...\t", end=' ') # ~#~#~#~ # # I n i t # # ~#~#~#~ # @@ -205,9 +205,9 @@ def write_ezfio(res, filename): virtual = [] active = [(allMOs[i].eigenvalue, i) for i in range(len(allMOs))] - closed = map(lambda x: x[1], closed) - active = map(lambda x: x[1], active) - virtual = map(lambda x: x[1], virtual) + closed = [x[1] for x in closed] + active = [x[1] for x in active] + virtual = [x[1] for x in virtual] MOindices = closed + active + virtual MOs = [] @@ -223,7 +223,7 @@ def write_ezfio(res, filename): MOmap[i] = MOindices.index(i) energies = [] - for i in xrange(mo_num): + for i in range(mo_num): energies.append(MOs[i].eigenvalue) if res.occ_num is not None: @@ -237,11 +237,11 @@ def write_ezfio(res, filename): MoMatrix = [] sym0 = [i.sym for i in res.mo_sets[MO_type]] sym = [i.sym for i in res.mo_sets[MO_type]] - for i in xrange(len(sym)): + for i in range(len(sym)): sym[MOmap[i]] = sym0[i] MoMatrix = [] - for i in xrange(len(MOs)): + for i in range(len(MOs)): m = MOs[i] for coef in m.vector: MoMatrix.append(coef) @@ -256,10 +256,10 @@ def write_ezfio(res, filename): ezfio.set_mo_basis_mo_num(mo_num) ezfio.set_mo_basis_mo_occ(OccNum) ezfio.set_mo_basis_mo_coef(MoMatrix) - print "OK" + print("OK") - print "Pseudos\t\t...\t", + print("Pseudos\t\t...\t", end=' ') try: lmax = 0 nucl_charge_remove = [] @@ -327,7 +327,7 @@ def write_ezfio(res, filename): else: ezfio.set_pseudo_do_pseudo(True) - print "OK" + print("OK") @@ -354,15 +354,15 @@ if __name__ == '__main__': except: raise else: - print FILE, 'recognized as', str(RES_FILE).split('.')[-1].split()[0] + print(FILE, 'recognized as', str(RES_FILE).split('.')[-1].split()[0]) write_ezfio(RES_FILE, EZFIO_FILE) sys.stdout.flush() if os.system("qp_run save_ortho_mos "+EZFIO_FILE) != 0: - print """Warning: You need to run + print("""Warning: You need to run qp run save_ortho_mos to be sure your MOs will be orthogonal, which is not the case when -the MOs are read from output files (not enough precision in output).""" +the MOs are read from output files (not enough precision in output).""") diff --git a/bin/qp_name b/bin/qp_name index f0551652..d15e16d0 100755 --- a/bin/qp_name +++ b/bin/qp_name @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 """ Displays the names of all the files in which the provider/subroutine/function @@ -30,7 +30,7 @@ try: from docopt import docopt from qp_path import QP_SRC, QP_ROOT except ImportError: - print "source .quantum_package.rc" + print("source .quantum_package.rc") raise @@ -38,7 +38,7 @@ def main(arguments): """Main function""" # Check that name exist in */IRPF90_man - print "Checking that name exists..." + print("Checking that name exists...") all_modules = os.listdir(QP_SRC) f = arguments[""]+".l" @@ -52,21 +52,21 @@ def main(arguments): if found: break if not found: - print "Error:" - print "The variable/subroutine/function \""+arguments[""] \ - + "\" was not found in the sources." - print "Did you compile the code at the root?" - print "Continue? [y/N] ", + print("Error:") + print("The variable/subroutine/function \""+arguments[""] \ + + "\" was not found in the sources.") + print("Did you compile the code at the root?") + print("Continue? [y/N] ", end=' ') cont = sys.stdin.read(1).strip() in ["y", "Y"] if not cont: - print "Aborted" + print("Aborted") sys.exit(1) # Now search in all the files if arguments["--rename"]: - print "Replacing..." + print("Replacing...") else: - print "Searching..." + print("Searching...") name = re.compile(r"\b"+arguments[""]+r"\b", re.IGNORECASE) @@ -84,15 +84,15 @@ def main(arguments): with open(filename, "r") as f: f_in = f.read() if name.search(f_in): - print filename + print(filename) if arguments["--rename"]: f_new = name.sub(arguments["--rename"], f_in) with open(filename, "w") as f: f.write(f_new) - print "Done" + print("Done") with open(os.path.join(QP_ROOT, "REPLACE"), 'a') as f: - print >>f, "qp_name "+" ".join(sys.argv[1:]) + print("qp_name "+" ".join(sys.argv[1:]), file=f) diff --git a/bin/qp_plugins b/bin/qp_plugins index b32f907f..ef0f5a45 100755 --- a/bin/qp_plugins +++ b/bin/qp_plugins @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Usage: @@ -43,9 +43,9 @@ try: from module_handler import get_l_module_descendant from qp_path import QP_SRC, QP_PLUGINS, QP_DATA, QP_ROOT except ImportError: - print "Please check if you have sourced the ${QP_ROOT}/quantum_package.rc" - print "(`source ${QP_ROOT}/quantum_package.rc`)" - print sys.exit(1) + print("Please check if you have sourced the ${QP_ROOT}/quantum_package.rc") + print("(`source ${QP_ROOT}/quantum_package.rc`)") + print(sys.exit(1)) def save_new_module(path, l_child): @@ -58,7 +58,7 @@ def save_new_module(path, l_child): try: os.makedirs(path) except OSError: - print "The module ({0}) already exists...".format(path) + print("The module ({0}) already exists...".format(path)) sys.exit(1) with open(os.path.join(path, "NEED"), "w") as f: @@ -105,7 +105,7 @@ def main(arguments): if arguments["list"]: if arguments["--repositories"]: for repo in get_repositories(): - print repo + print(repo) else: # Search in QP_PLUGINS all directories with a NEED file @@ -121,7 +121,7 @@ def main(arguments): for (x, y) in l_tmp: d_tmp[x] = y repo_of_plugin[y] = x.replace(QP_PLUGINS+'/','') - l_repository = d_tmp.keys() + l_repository = list(d_tmp.keys()) if l_repository == []: l_result = [] else: @@ -142,7 +142,7 @@ def main(arguments): l_result = [f for f in l_plugins if f not in l_installed] for module in sorted(l_result): - print "%-30s %-30s"%(module, repo_of_plugin[module]) + print("%-30s %-30s"%(module, repo_of_plugin[module])) if arguments["create"]: @@ -159,29 +159,29 @@ def main(arguments): path = os.path.join(QP_PLUGINS, repository, name) - print "Created plugin:" - print path, '\n' + print("Created plugin:") + print(path, '\n') for children in l_children: if children not in m_instance.dict_descendant: - print "Error: {0} is not a valid module.".format(children) + print("Error: {0} is not a valid module.".format(children)) sys.exit(1) - print "Needed modules:" - print l_children, '\n' + print("Needed modules:") + print(l_children, '\n') - print "This corresponds to using the following modules:" - print l_children + m_instance.l_descendant_unique(l_children), '\n' + print("This corresponds to using the following modules:") + print(l_children + m_instance.l_descendant_unique(l_children), '\n') - print "Which is reduced to:" + print("Which is reduced to:") l_child_reduce = m_instance.l_reduce_tree(l_children) - print l_child_reduce, '\n' + print(l_child_reduce, '\n') - print "Installation", + print("Installation", end=' ') save_new_module(path, l_child_reduce) - print " [ OK ]" - print "" + print(" [ OK ]") + print("") arguments["create"] = False arguments["install"] = True main(arguments) @@ -228,7 +228,7 @@ def main(arguments): for (x, y) in [os.path.split(f) for f in l_tmp]: d_repo_of_plugin[y] = x d_repo[x] = None - l_repository = d_repo.keys() + l_repository = list(d_repo.keys()) d_plugin = get_dict_child(l_repository) @@ -236,7 +236,7 @@ def main(arguments): d_child.update(d_plugin) normalize_case = {} - for name in d_local.keys() + d_plugin.keys(): + for name in list(d_local.keys()) + list(d_plugin.keys()): normalize_case[name.lower()] = name l_name = [normalize_case[name.lower()] for name in arguments[""]] @@ -244,7 +244,7 @@ def main(arguments): for name in l_name: if name in d_local: - print "{0} Is already installed".format(name) + print("{0} Is already installed".format(name)) l_module_descendant = get_l_module_descendant(d_child, l_name) @@ -252,10 +252,10 @@ def main(arguments): if l_module_to_cp: - print "Required dependencies:" - print l_module_to_cp + print("Required dependencies:") + print(l_module_to_cp) - print "Installation...", + print("Installation...", end=' ') for module_to_cp in l_module_to_cp: src = os.path.join(d_repo_of_plugin[module_to_cp], module_to_cp) @@ -269,10 +269,10 @@ def main(arguments): subprocess.check_call([install]) os.chdir(wd) except OSError: - print "The src directory is broken. Please remove %s" % des + print("The src directory is broken. Please remove %s" % des) raise subprocess.check_call(["qp_create_ninja", "update"]) - print "[ OK ]" + print("[ OK ]") elif arguments["uninstall"]: @@ -285,17 +285,17 @@ def main(arguments): l_failed = [name for name in l_name if name not in d_local] if l_failed: - print "Plugins not installed:" + print("Plugins not installed:") for name in sorted(l_failed): - print "%s" % name + print("%s" % name) sys.exit(1) 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 "Removing plugins:" - print l_name_to_remove + print("Removing plugins:") + print(l_name_to_remove) for module in set(l_name_to_remove): @@ -310,7 +310,7 @@ def main(arguments): try: os.unlink(os.path.join(QP_SRC, module)) except OSError: - print "%s is a core module which can't be removed" % module + print("%s is a core module which can't be removed" % module) elif arguments["update"]: @@ -321,7 +321,7 @@ def main(arguments): l_repositories = get_repositories() for repo in l_repositories: - print "Updating ", repo + print("Updating ", repo) os.chdir(os.path.join(QP_PLUGINS,repo)) git_cmd=["git", "pull"] subprocess.check_call(git_cmd) diff --git a/bin/qp_reset b/bin/qp_reset index b8c07adf..59646835 100755 --- a/bin/qp_reset +++ b/bin/qp_reset @@ -95,6 +95,7 @@ qp set_file $ezfio if [[ $dets -eq 1 ]] ; then rm --force -- ${ezfio}/determinants/n_det rm --force -- ${ezfio}/determinants/psi_{det,coef}.gz + rm --force -- ${ezfio}/determinants/psi_{det,coef}_qp_edit.gz fi if [[ $mos -eq 1 ]] ; then diff --git a/bin/qp_set_frozen_core b/bin/qp_set_frozen_core index 25b450dd..b00797e2 100755 --- a/bin/qp_set_frozen_core +++ b/bin/qp_set_frozen_core @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 """ @@ -49,7 +49,7 @@ import os.path try: import qp_path except ImportError: - print "source .quantum_package.rc" + print("source .quantum_package.rc") raise from docopt import docopt @@ -102,7 +102,7 @@ def main(arguments): mo_num = ezfio.mo_basis_mo_num if arguments["--query"]: - print n_frozen + print(n_frozen) sys.exit(0) if n_frozen == 0: diff --git a/bin/qp_set_frozen_large_core b/bin/qp_set_frozen_large_core index cce5ca70..6950b90c 100755 --- a/bin/qp_set_frozen_large_core +++ b/bin/qp_set_frozen_large_core @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 """ @@ -23,7 +23,7 @@ import os.path try: import qp_path except ImportError: - print "source .quantum_package.rc" + print("source .quantum_package.rc") raise from docopt import docopt @@ -62,7 +62,7 @@ def main(arguments): mo_num = ezfio.mo_basis_mo_num if arguments["--query"]: - print n_frozen + print(n_frozen) sys.exit(0) if n_frozen == 0: diff --git a/bin/qp_test b/bin/qp_test index e1730cc8..67b3ea02 100755 --- a/bin/qp_test +++ b/bin/qp_test @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @@ -21,8 +21,8 @@ try: from docopt import docopt from qp_path import QP_SRC, QP_TESTS except ImportError: - print "Please check if you have sourced the ${QP_ROOT}/quantum_package.rc" - print "(`source ${QP_ROOT}/quantum_package.rc`)" + print("Please check if you have sourced the ${QP_ROOT}/quantum_package.rc") + print("(`source ${QP_ROOT}/quantum_package.rc`)") sys.exit(1) @@ -54,11 +54,11 @@ def main(arguments): os.chdir(QP_TESTS) for bats_file in l_bats: - print "" - print "-~-~-~-~-~-~" - print "" - print "Running tests for %s"%(bats_file) - print "" + print("") + print("-~-~-~-~-~-~") + print("") + print("Running tests for %s"%(bats_file)) + print("") if arguments["-v"]: p = None if arguments["TEST"]: @@ -66,7 +66,7 @@ def main(arguments): else: test = "" try: - os.system(test+" python2 bats_to_sh.py "+bats_file+ + os.system(test+" python3 bats_to_sh.py "+bats_file+ "| bash") except: if p: diff --git a/config/ifort_avx.cfg b/config/ifort_avx.cfg index d3fcd1f0..25bf35eb 100644 --- a/config/ifort_avx.cfg +++ b/config/ifort_avx.cfg @@ -9,14 +9,14 @@ FC : ifort -fpic LAPACK_LIB : -mkl=parallel IRPF90 : irpf90 -IRPF90_FLAGS : --ninja --align=32 +IRPF90_FLAGS : --ninja --align=32 # Global options ################ # # 1 : Activate # 0 : Deactivate -# +# [OPTION] MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below CACHE : 0 ; Enable cache_compile.py @@ -32,14 +32,14 @@ OPENMP : 1 ; Append OpenMP flags # [OPT] FC : -traceback -FCFLAGS : -xAVX -O2 -ip -ftz -g +FCFLAGS : -mavx -axAVX -O2 -ip -ftz -g # Profiling flags ################# # [PROFILE] FC : -p -g -FCFLAGS : -xSSE4.2 -O2 -ip -ftz +FCFLAGS : -xSSE4.2 -O2 -ip -ftz # Debugging flags ################# diff --git a/config/ifort_avx_mpi.cfg b/config/ifort_avx_mpi.cfg index 550dbf91..9a839e66 100644 --- a/config/ifort_avx_mpi.cfg +++ b/config/ifort_avx_mpi.cfg @@ -9,14 +9,14 @@ FC : mpiifort -fpic LAPACK_LIB : -mkl=parallel IRPF90 : irpf90 -IRPF90_FLAGS : --ninja --align=32 -DMPI +IRPF90_FLAGS : --ninja --align=32 -DMPI # Global options ################ # # 1 : Activate # 0 : Deactivate -# +# [OPTION] MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below CACHE : 0 ; Enable cache_compile.py @@ -31,14 +31,14 @@ OPENMP : 1 ; Append OpenMP flags # -ftz : Flushes denormal results to zero # [OPT] -FCFLAGS : -march=corei7-avx -O2 -ip -ftz -g -traceback +FCFLAGS : -mavx -axAVX -O2 -ip -ftz -g -traceback # Profiling flags ################# # [PROFILE] FC : -p -g -FCFLAGS : -march=corei7 -O2 -ip -ftz +FCFLAGS : -march=corei7 -O2 -ip -ftz # Debugging flags diff --git a/config/ifort_debug.cfg b/config/ifort_debug.cfg index 32e4d895..f0f90f34 100644 --- a/config/ifort_debug.cfg +++ b/config/ifort_debug.cfg @@ -32,7 +32,7 @@ OPENMP : 1 ; Append OpenMP flags # [OPT] FC : -traceback -FCFLAGS : -xSSE4.2 -O2 -ip -ftz -g +FCFLAGS : -msse4.2 -O2 -ip -ftz -g # Profiling flags @@ -40,7 +40,7 @@ FCFLAGS : -xSSE4.2 -O2 -ip -ftz -g # [PROFILE] FC : -p -g -FCFLAGS : -xSSE4.2 -O2 -ip -ftz +FCFLAGS : -msse4.2 -O2 -ip -ftz # Debugging flags @@ -50,11 +50,11 @@ FCFLAGS : -xSSE4.2 -O2 -ip -ftz # -fpe0 : All floating point exaceptions # -C : Checks uninitialized variables, array subscripts, etc... # -g : Extra debugging information -# -xSSE2 : Valgrind needs a very simple x86 executable +# -msse4.2 : Valgrind needs a very simple x86 executable # [DEBUG] FC : -g -traceback -FCFLAGS : -xSSE4.2 -C -fpe0 -implicitnone +FCFLAGS : -msse4.2 -C -fpe0 -implicitnone # OpenMP flags diff --git a/config/ifort_epyc.cfg b/config/ifort_epyc.cfg deleted file mode 100644 index 1b2427de..00000000 --- a/config/ifort_epyc.cfg +++ /dev/null @@ -1,63 +0,0 @@ -# Common flags -############## -# -# -mkl=[parallel|sequential] : Use the MKL library -# --ninja : Allow the utilisation of ninja. It is mandatory ! -# --align=32 : Align all provided arrays on a 32-byte boundary -# -[COMMON] -FC : ifort -fpic -LAPACK_LIB : -mkl=parallel -IRPF90 : irpf90 -IRPF90_FLAGS : --ninja --align=32 - -# Global options -################ -# -# 1 : Activate -# 0 : Deactivate -# -[OPTION] -MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below -CACHE : 0 ; Enable cache_compile.py -OPENMP : 1 ; Append OpenMP flags - -# Optimization flags -#################### -# -# -xHost : Compile a binary optimized for the current architecture -# -O2 : O3 not better than O2. -# -ip : Inter-procedural optimizations -# -ftz : Flushes denormal results to zero -# -[OPT] -FC : -traceback -FCFLAGS : -march=core-avx2 -O2 -ip -ftz -g - -# Profiling flags -################# -# -[PROFILE] -FC : -p -g -FCFLAGS : -march=core-avx2 -O2 -ip -ftz - -# Debugging flags -################# -# -# -traceback : Activate backtrace on runtime -# -fpe0 : All floating point exaceptions -# -C : Checks uninitialized variables, array subscripts, etc... -# -g : Extra debugging information -# -xSSE2 : Valgrind needs a very simple x86 executable -# -[DEBUG] -FC : -g -traceback -FCFLAGS : -xSSE2 -C -fpe0 -implicitnone - -# OpenMP flags -################# -# -[OPENMP] -FC : -qopenmp -IRPF90_FLAGS : --openmp - diff --git a/config/ifort_mpi.cfg b/config/ifort_mpi.cfg index 5c3b1782..57087847 100644 --- a/config/ifort_mpi.cfg +++ b/config/ifort_mpi.cfg @@ -9,14 +9,14 @@ FC : mpiifort -fpic LAPACK_LIB : -mkl=parallel IRPF90 : irpf90 -IRPF90_FLAGS : --ninja --align=32 -DMPI +IRPF90_FLAGS : --ninja --align=32 -DMPI # Global options ################ # # 1 : Activate # 0 : Deactivate -# +# [OPTION] MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below CACHE : 0 ; Enable cache_compile.py @@ -31,14 +31,14 @@ OPENMP : 1 ; Append OpenMP flags # -ftz : Flushes denormal results to zero # [OPT] -FCFLAGS : -xSSE4.2 -O2 -ip -ftz -g -traceback +FCFLAGS : -msse4.2 -O2 -ip -ftz -g -traceback # Profiling flags ################# # [PROFILE] FC : -p -g -FCFLAGS : -xSSE4.2 -O2 -ip -ftz +FCFLAGS : -msse4.2 -O2 -ip -ftz # Debugging flags diff --git a/configure b/configure index a1f91fb1..5c5ce1ab 100755 --- a/configure +++ b/configure @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash # # Quantum Package configuration script # @@ -15,20 +15,20 @@ unset CCXX export CC=gcc -# When updating version, update also etc files +# /!\ When updating version, update also etc files +EZFIO_TGZ="EZFIO.2.0.2.tar.gz" BATS_URL="https://github.com/bats-core/bats-core/archive/v1.1.0.tar.gz" BUBBLE_URL="https://github.com/projectatomic/bubblewrap/releases/download/v0.3.3/bubblewrap-0.3.3.tar.xz" DOCOPT_URL="https://github.com/docopt/docopt/archive/0.6.2.tar.gz" BSE_URL="https://github.com/MolSSI-BSE/basis_set_exchange/archive/v0.8.11.tar.gz" -EZFIO_URL="https://gitlab.com/scemama/EZFIO/-/archive/v1.6.1/EZFIO-v1.6.1.tar.gz" F77ZMQ_URL="https://github.com/scemama/f77_zmq/archive/v4.2.5.tar.gz" GMP_URL="ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2" -IRPF90_URL="https://gitlab.com/scemama/irpf90/-/archive/v1.7.6/irpf90-v1.7.6.tar.gz" +IRPF90_URL="https://gitlab.com/scemama/irpf90/-/archive/v2.0.0/irpf90-v2.0.0.tar.gz" LIBCAP_URL="https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git/snapshot/libcap-2.25.tar.gz" NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip" OCAML_URL="https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh" -RESULTS_URL="https://gitlab.com/scemama/resultsFile/-/archive/v1.0/resultsFile-v1.0.tar.gz" +RESULTS_URL="https://gitlab.com/scemama/resultsFile/-/archive/v2.0/resultsFile-v2.0.tar.gz" ZEROMQ_URL="https://github.com/zeromq/libzmq/releases/download/v4.2.5/zeromq-4.2.5.tar.gz" ZLIB_URL="https://www.zlib.net/zlib-1.2.11.tar.gz" @@ -45,7 +45,7 @@ Usage: Options: -c, --config= Define a COMPILATION configuration file, - in "${QP_ROOT}/config/". + in "${QP_ROOT}/config/". -h, --help Print the HELP message -i, --install= INSTALL . Use at your OWN RISK: no support will be provided for the installation of @@ -73,7 +73,7 @@ function execute () { while read -r line; do echo " " $line _command+="${line} ;" - done + done sleep 1 echo "" printf "\e[0;94m" @@ -87,7 +87,7 @@ OCAML_PACKAGES="ocamlbuild cryptokit zmq sexplib ppx_sexp_conv ppx_deriving geto while true ; do case "$1" in - -c|--config) + -c|--config) case "$2" in "") help ; break;; *) if [[ -f $2 ]] ; then @@ -96,15 +96,15 @@ while true ; do error "error: configuration file $2 not found." exit 1 fi - esac + esac shift 2;; -i|--install) case "$2" in "") help ; break;; *) PACKAGES="${PACKAGE} $2" - esac + esac shift 2;; - -h|-help|--help) + -h|-help|--help) help exit 0;; --) shift ; break ;; @@ -154,7 +154,7 @@ function find_exe() { } function find_python_lib() { - python2 -c "import $1" &> /dev/null && echo "$1" || not_found + python3 -c "import $1" &> /dev/null && echo "$1" || not_found } function find_lib() { @@ -178,6 +178,19 @@ function find_dir() { } +# Extract EZFIO if needed +EZFIO=$(find_dir "${QP_ROOT}"/external/ezfio) +if [[ ${EZFIO} = $(not_found) ]] ; then + execute << EOF + cd "\${QP_ROOT}"/external + tar --gunzip --extract --file ${EZFIO_TGZ} + rm -rf ezfio + mv EZFIO ezfio +EOF +fi + + + if [[ "${PACKAGES}.x" != ".x" ]] ; then printf "\e[0;31m" echo "" @@ -224,7 +237,7 @@ EOF ./configure --prefix=$QP_ROOT && make -j 8 make install EOF - + elif [[ ${PACKAGE} = libcap ]] ; then download ${LIBCAP_URL} "${QP_ROOT}"/external/libcap.tar.gz @@ -259,12 +272,14 @@ EOF cd irpf90-* make EOF - + elif [[ ${PACKAGE} = zeromq ]] ; then download ${ZEROMQ_URL} "${QP_ROOT}"/external/zeromq.tar.gz execute << EOF + export CC=gcc + export CXX=g++ cd "\${QP_ROOT}"/external tar --gunzip --extract --file zeromq.tar.gz rm zeromq.tar.gz @@ -290,7 +305,7 @@ EOF cp f77_zmq_free.h "\${QP_ROOT}"/include EOF - + elif [[ ${PACKAGE} = ocaml ]] ; then download ${OCAML_URL} "${QP_ROOT}"/external/opam_installer.sh @@ -303,7 +318,7 @@ EOF rm -rf ${HOME}/.opam fi export OPAMROOT=${HOME}/.opam - cat << EOF | bash ${QP_ROOT}/external/opam_installer.sh --no-backup + cat << EOF | bash ${QP_ROOT}/external/opam_installer.sh --no-backup ${QP_ROOT}/bin @@ -313,8 +328,8 @@ EOF rm ${QP_ROOT}/external/opam_installer.sh # source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true # -# opam switch create ocaml-base-compiler.4.07.1 - opam init --verbose --yes --compiler=4.07.1 --disable-sandboxing +# opam switch create ocaml-base-compiler.4.10.0 + opam init --verbose --yes --compiler=4.10.0 --disable-sandboxing eval $(opam env) opam install -y ${OCAML_PACKAGES} || exit 1 @@ -323,37 +338,25 @@ EOF # Conventional commands execute << EOF chmod +x "${QP_ROOT}"/external/opam_installer.sh - "${QP_ROOT}"/external/opam_installer.sh --no-backup + "${QP_ROOT}"/external/opam_installer.sh --no-backup EOF execute << EOF rm --force ${QP_ROOT}/bin/opam export OPAMROOT=${OPAMROOT:-${QP_ROOT}/external/opam} echo ${QP_ROOT}/bin \ - | sh ${QP_ROOT}/external/opam_installer.sh + | sh ${QP_ROOT}/external/opam_installer.sh EOF rm ${QP_ROOT}/external/opam_installer.sh # source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true -# opam switch create ocaml-base-compiler.4.07.1 || exit 1 +# opam switch create ocaml-base-compiler.4.10.0 || exit 1 - opam init --verbose --yes --compiler=4.07.1 --disable-sandboxing + opam init --verbose --yes --compiler=4.10.0 --disable-sandboxing eval $(opam env) execute << EOF opam install -y \${OCAML_PACKAGES} || exit 1 EOF fi - - elif [[ ${PACKAGE} = ezfio ]] ; then - - download ${EZFIO_URL} "${QP_ROOT}"/external/ezfio.tar.gz - execute << EOF - cd "\${QP_ROOT}"/external - tar --gunzip --extract --file ezfio.tar.gz - rm -f ezfio.tar.gz - rm -rf ezfio - mv EZFIO-* ezfio -EOF - elif [[ ${PACKAGE} = bse ]] ; then @@ -375,13 +378,13 @@ EOF make && make install EOF - + elif [[ ${PACKAGE} = docopt ]] ; then download ${DOCOPT_URL} "${QP_ROOT}"/external/docopt.tar.gz execute << EOF cd "\${QP_ROOT}"/external - tar --gunzip --extract --file docopt.tar.gz + tar --gunzip --extract --file docopt.tar.gz mv docopt-*/docopt.py "\${QP_ROOT}/external/Python" rm --recursive --force -- docopt-*/ docopt.tar.gz EOF @@ -392,7 +395,7 @@ EOF download ${RESULTS_URL} "${QP_ROOT}"/external/resultsFile.tar.gz execute << EOF cd "\${QP_ROOT}"/external - tar --gunzip --extract --file resultsFile.tar.gz + tar --gunzip --extract --file resultsFile.tar.gz mv resultsFile-*/resultsFile "\${QP_ROOT}/external/Python/" rm --recursive --force resultsFile-* resultsFile.tar.gz EOF @@ -402,7 +405,7 @@ EOF download ${BATS_URL} "${QP_ROOT}"/external/bats.tar.gz execute << EOF cd "\${QP_ROOT}"/external - tar -zxf bats.tar.gz + tar -zxf bats.tar.gz ( cd bats-core-1.1.0/ ; ./install.sh \${QP_ROOT}) rm --recursive --force -- bats-core-1.1.0 \ "\${QP_ROOT}"/external/bats.tar.gz EOF @@ -468,12 +471,6 @@ if [[ ${OCAML} = $(not_found) ]] ; then fail fi -EZFIO=$(find_dir "${QP_ROOT}"/external/ezfio) -if [[ ${EZFIO} = $(not_found) ]] ; then - error "EZFIO (ezfio) is not installed." - fail -fi - ZLIB=$(find_lib -lz) if [[ ${ZLIB} = $(not_found) ]] ; then error "Zlib (zlib) is not installed." @@ -520,15 +517,15 @@ fi if [[ -f ${QP_ROOT}/build.ninja ]] ; then [[ -z ${TRAVIS} ]] && echo "You can now run ./bin/qpsh to enter in the QP shell mode :)" -else +else echo "" echo "${QP_ROOT}/build.ninja does not exist," echo "you need to specify the COMPILATION configuration file." - echo "See ./configure --help for more details." + echo "See ./configure --help for more details." echo "" fi exit 0 - + diff --git a/docs/Makefile b/docs/Makefile index 7f886cbc..8ec191fc 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -14,7 +14,7 @@ help: .PHONY: help Makefile auto auto: - cd source ; python2 auto_generate.py + cd source ; python3 auto_generate.py # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). diff --git a/docs/source/auto_generate.py b/docs/source/auto_generate.py index a4dd32ca..11029c3b 100755 --- a/docs/source/auto_generate.py +++ b/docs/source/auto_generate.py @@ -1,9 +1,9 @@ #!/usr/bin/env python2 -from __future__ import print_function + import os import sys -import ConfigParser +import configparser from module_handler import get_binaries @@ -27,7 +27,7 @@ def generate_modules(abs_module, entities): EZFIO = os.path.join(abs_module,'EZFIO.cfg') if os.path.exists(EZFIO): rst += ["", "EZFIO parameters", "----------------", ""] - config_file = ConfigParser.ConfigParser() + config_file = configparser.ConfigParser() with open(EZFIO, 'r') as f: config_file.readfp(f) for section in config_file.sections(): diff --git a/etc/irpf90.rc b/etc/irpf90.rc index 42ec4502..8016edf6 100644 --- a/etc/irpf90.rc +++ b/etc/irpf90.rc @@ -1,7 +1,7 @@ # Configuration of IRPF90 package # Set the path of IRPF90 here: -export IRPF90_PATH=${QP_ROOT}/external/irpf90-v1.7.6 +export IRPF90_PATH=${QP_ROOT}/external/irpf90-v2.0.0 export PATH=${PATH}:${IRPF90_PATH}/bin export IRPF90=${IRPF90_PATH}/bin/irpf90 @@ -10,10 +10,10 @@ function source_if_exists() { if [[ -f $1 ]]; then cd $(dirname $1) ; source $(basename $1) ; cd - fi &> /dev/null -} +} source ${QP_ROOT}/etc/autocomplete.rc source_if_exists "${IRPF90_PATH}/irpman-completions.bash" - + diff --git a/etc/paths.rc b/etc/paths.rc index ce82358a..366286d7 100644 --- a/etc/paths.rc +++ b/etc/paths.rc @@ -38,5 +38,6 @@ export LD_LIBRARY_PATH=$(qp_prepend_export "LD_LIBRARY_PATH" "${QP_ROOT}"/lib) export LIBRARY_PATH=$(qp_prepend_export "LIBRARY_PATH" "${QP_ROOT}"/lib:"${QP_ROOT}"/lib64) export C_INCLUDE_PATH=$(qp_prepend_export "C_INCLUDE_PATH" "${QP_ROOT}"/include) +export CPATH=$(qp_prepend_export "CPATH" "${QP_ROOT}"/include) diff --git a/external/EZFIO.2.0.2.tar.gz b/external/EZFIO.2.0.2.tar.gz new file mode 100644 index 00000000..3d1e7d75 Binary files /dev/null and b/external/EZFIO.2.0.2.tar.gz differ diff --git a/external/Python/.gitignore b/external/Python/.gitignore index e69de29b..1cd79fd6 100644 --- a/external/Python/.gitignore +++ b/external/Python/.gitignore @@ -0,0 +1,46 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.cache +nosetests.xml +coverage.xml + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ diff --git a/ocaml/qp_tunnel.ml b/ocaml/qp_tunnel.ml index 6669da06..84e50eb5 100644 --- a/ocaml/qp_tunnel.ml +++ b/ocaml/qp_tunnel.ml @@ -21,10 +21,6 @@ let () = doc="Downloads the EZFIO directory." ; arg=Without_arg; } ; - { short='v' ; long="verbose" ; opt=Optional ; - doc="Prints the transfer speed." ; - arg=Without_arg; } ; - anonymous "(EZFIO_DIR|ADDRESS)" Mandatory @@ -150,45 +146,6 @@ let () = Zmq.Socket.subscribe socket_in ""; - (* - let action = - if verbose then - begin - match req_or_sub with - | REQ -> (fun () -> - let msg = - Zmq.Socket.recv_all socket_in - in - let t0 = Unix.gettimeofday () in - Zmq.Socket.send_all socket_out msg; - let in_size = - float_of_int ( List.fold_left (fun accu x -> accu + String.length x) 0 msg ) - /. 8192. /. 1024. - in - let msg = - Zmq.Socket.recv_all socket_out - in - let t1 = Unix.gettimeofday () in - Zmq.Socket.send_all socket_in msg; - let in_time = t1 -. t0 in - in_time_sum := !in_time_sum +. in_time; - in_size_sum := !in_size_sum +. in_size; - Printf.printf " %16.2f MiB/s -- %16.2f MiB/s\n%!" (in_size /. in_time) (!in_size_sum /. !in_time_sum); - ) - | SUB -> (fun () -> - Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out) - end - else - begin - match req_or_sub with - | REQ -> (fun () -> - Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out; - Zmq.Socket.recv_all socket_out |> Zmq.Socket.send_all socket_in ) - | SUB -> (fun () -> - Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out) - end - in - *) let action_in = match req_or_sub with diff --git a/ocaml/qptypes_generator.ml b/ocaml/qptypes_generator.ml index 2c54a218..ce99fc78 100644 --- a/ocaml/qptypes_generator.ml +++ b/ocaml/qptypes_generator.ml @@ -219,22 +219,19 @@ module Perturbation : sig end = struct type t = | EN - | Barycentric - | Variance + | HF | SOP [@@deriving sexp] let to_string = function | EN -> \"EN\" - | Variance -> \"Variance\" - | Barycentric -> \"Barycentric\" + | HF -> \"HF\" | SOP -> \"SOP\" let of_string s = match (String.lowercase_ascii s) with | \"sop\" -> SOP | \"en\" -> EN - | \"variance\" -> Variance - | \"barycentric\" -> Barycentric + | \"hf\" -> HF | _ -> raise (Invalid_argument (\"Wrong Perturbation type : \"^s)) end " diff --git a/scripts/compilation/cache_compile.py b/scripts/compilation/cache_compile.py index d95adbda..440f6498 100755 --- a/scripts/compilation/cache_compile.py +++ b/scripts/compilation/cache_compile.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 """ Save the .o from a .f90 and is the .o is asked a second time, retur it @@ -13,9 +13,9 @@ import re import shutil import subprocess -r = re.compile(ur'-c\s+(\S+\.[fF]90)\s+-o\s+(\S+\.o)') -p = re.compile(ur'-I IRPF90_temp/\S*\s+') -mod = re.compile(ur'module\s+(?P\S+).+end\s?module\s+(?P=mod)?', +r = re.compile(r'-c\s+(\S+\.[fF]90)\s+-o\s+(\S+\.o)') +p = re.compile(r'-I IRPF90_temp/\S*\s+') +mod = re.compile(r'module\s+(?P\S+).+end\s?module\s+(?P=mod)?', re.MULTILINE | re.IGNORECASE) tmpdir_root = os.environ.get("TMPDIR", failobj="/dev/shm") diff --git a/scripts/compilation/qp_create_ninja b/scripts/compilation/qp_create_ninja index 8381d1a2..3d4e56dc 100755 --- a/scripts/compilation/qp_create_ninja +++ b/scripts/compilation/qp_create_ninja @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Usage: qp_create_ninja create (--development | --production) @@ -24,7 +24,7 @@ except ImportError: "..", "quantum_package.rc")) - print "\n".join(["", "Error:", "source %s" % f, ""]) + print("\n".join(["", "Error:", "source %s" % f, ""])) sys.exit(1) # Compress path @@ -124,7 +124,7 @@ def dict_module_genelogy_path(d_module_genelogy): d_module_genelogy """ d = dict() - for module_rel, l_children_rel in d_module_genelogy.iteritems(): + for module_rel, l_children_rel in d_module_genelogy.items(): module_abs = real_join(QP_SRC, module_rel) p = Path(module_abs, module_rel) @@ -235,11 +235,11 @@ def ninja_ezfio_cfg_build(l_util): """ l_string = [] - for m in l_util.itervalues(): + for m in l_util.values(): str_ = "build {1} {2}: build_ezfio_interface {0}" - l_string += [str_.format(*map(comp_path,(m.ez_cfg.abs, m.ez_interface.abs, - m.ez_config.abs)))] + l_string += [str_.format(*list(map(comp_path,(m.ez_cfg.abs, m.ez_interface.abs, + m.ez_config.abs))))] l_string += [" sub_module = {0}".format(comp_path(m.ez_module.abs))] l_string += [""] @@ -257,8 +257,8 @@ def ninja_ezfio_config_build(l_ezfio_config): file_source = m.path_in_module file_create = m.path_in_ezfio - l_string += ["build {0}: build_ezfio_config {1}".format(*map(comp_path,(file_create, - file_source)))] + l_string += ["build {0}: build_ezfio_config {1}".format(*list(map(comp_path,(file_create, + file_source))))] l_string += [""] return l_string @@ -291,7 +291,7 @@ def ninja_ezfio_build(l_ezfio_config, l_util): """ l_ezfio_config = [i.path_in_ezfio for i in l_ezfio_config] - l_ezfio_from_cfg = [i.ez_config.abs for i in l_util.itervalues()] + l_ezfio_from_cfg = [i.ez_config.abs for i in l_util.values()] str_ = " ".join(map(comp_path,(l_ezfio_config + l_ezfio_from_cfg))) l_string = ["build {0}: build_ezfio {1}".format(EZFIO_LIB, str_), ""] @@ -335,7 +335,7 @@ def ninja_symlink_build(path_module, l_symlink): ""] for symlink in l_symlink: - l_string += ["build {0}: build_symlink {1}".format(*map(comp_path,(symlink.destination, symlink.source))), ""] + l_string += ["build {0}: build_symlink {1}".format(*list(map(comp_path,(symlink.destination, symlink.source)))), ""] return l_string @@ -360,7 +360,7 @@ def ninja_gitignore_build(path_module, d_binaries, l_symlink): path_gitignore = comp_path(join(path_module.abs, ".gitignore")) - l_b = map(comp_path,[i.abs for i in d_binaries[path_module]]) + l_b = list(map(comp_path,[i.abs for i in d_binaries[path_module]])) root = "build {0}: build_gitignore {1}".format(path_gitignore, " ".join(l_b)) @@ -420,9 +420,9 @@ def get_file_dependency(d_info_module): """ d_irp = defaultdict(dict) - for module, l_children in d_info_module.iteritems(): + for module, l_children in d_info_module.items(): - for key, values in get_l_file_for_module(module).iteritems(): + for key, values in get_l_file_for_module(module).items(): if key in ["l_src"]: values = [join(module.abs, o) for o in values] if key in ["l_obj"]: @@ -431,7 +431,7 @@ def get_file_dependency(d_info_module): d_irp[module][key] = values for children in l_children: - for key, values in get_l_file_for_module(children).iteritems(): + for key, values in get_l_file_for_module(children).items(): if key in ["l_src"]: values = [join(module.abs, children.rel, o) for o in values] @@ -495,10 +495,10 @@ def ninja_irpf90_make_build(path_module, l_needed_molule, d_irp): # D e p e n d a n c y # # ~#~#~#~#~#~#~#~#~#~ # - l_depend = map(comp_path,d_irp[path_module]["l_depend"]) - l_src = map(comp_path,d_irp[path_module]["l_src"]) - l_obj = map(comp_path,d_irp[path_module]["l_obj"]) - l_template = map(comp_path,d_irp[path_module]["l_template"]) + l_depend = list(map(comp_path,d_irp[path_module]["l_depend"])) + l_src = list(map(comp_path,d_irp[path_module]["l_src"])) + l_obj = list(map(comp_path,d_irp[path_module]["l_obj"])) + l_template = list(map(comp_path,d_irp[path_module]["l_template"])) if l_needed_molule: l_symlink = ["l_symlink_{0}".format(path_module.rel)] @@ -511,7 +511,7 @@ def ninja_irpf90_make_build(path_module, l_needed_molule, d_irp): # N i n j a _ b u i l d # # ~#~#~#~#~#~#~#~#~#~#~ # - l_include_dir = ["-I {0}".format(m.rel) for m in l_needed_molule] + l_include_dir = ["-I {0}".format(m.rel) for m in l_needed_molule] l_string = [ "build {0}: build_irpf90.ninja {1}".format(str_creation, str_depend), @@ -544,6 +544,7 @@ def get_binaries(path_module): stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() + stdout = stdout.decode() except OSError: return [] else: @@ -641,7 +642,7 @@ def ninja_binaries_build(path_module, l_children, d_binaries): # ~#~#~ # ninja_module_path = join(comp_path(path_module.abs), "IRPF90_temp/build.ninja") - l_abs_bin = map(comp_path,[binary.abs for binary in d_binaries[path_module]]) + l_abs_bin = list(map(comp_path,[binary.abs for binary in d_binaries[path_module]])) # ~#~#~#~#~#~ # # s t r i n g # @@ -658,7 +659,7 @@ def ninja_binaries_build(path_module, l_children, d_binaries): def ninja_module_build(path_module, d_binaries): - l_abs_bin = map(comp_path,[binary.abs for binary in d_binaries[path_module]]) + l_abs_bin = list(map(comp_path,[binary.abs for binary in d_binaries[path_module]])) path_readme = os.path.join(comp_path(path_module.abs), "README.rst") @@ -829,14 +830,14 @@ if __name__ == "__main__": dict_root = module_instance.dict_root dict_root_path = dict_module_genelogy_path(dict_root) - l_all_module = d_genealogy_path.keys() + l_all_module = list(d_genealogy_path.keys()) # ~#~#~#~#~#~#~#~#~#~#~#~#~ # # M o d u l e _ t o _ i r p # # ~#~#~#~#~#~#~#~#~#~#~#~#~ # d_binaries = get_dict_binaries(l_all_module, mode="development") - l_module = d_binaries.keys() + l_module = list(d_binaries.keys()) # ~#~#~#~#~#~#~#~#~#~#~#~ # diff --git a/scripts/compilation/read_compilation_cfg.py b/scripts/compilation/read_compilation_cfg.py index 7a9af801..45518701 100755 --- a/scripts/compilation/read_compilation_cfg.py +++ b/scripts/compilation/read_compilation_cfg.py @@ -1,8 +1,8 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os, sys -import ConfigParser +import configparser def get_l_option_section(config): @@ -17,10 +17,10 @@ def get_compilation_option(pwd_cfg, flag_name): Return the flag compilation of a compile.cfg located in pwd_cfg """ if not os.path.isfile(pwd_cfg): - print "Configuration file %s not found"%(pwd_cfg) + print("Configuration file %s not found"%(pwd_cfg)) sys.exit(1) - config = ConfigParser.ConfigParser() + config = configparser.ConfigParser(inline_comment_prefixes=(';','#')) config.read(pwd_cfg) if flag_name == "FC" and config.getboolean("OPTION","CACHE"): @@ -33,7 +33,7 @@ def get_compilation_option(pwd_cfg, flag_name): for section in ["COMMON"] + l_option_section: try: l.extend(config.get(section, flag_name).split()) - except ConfigParser.NoOptionError: + except configparser.NoOptionError: pass return " ".join(l) @@ -43,5 +43,5 @@ if __name__ == '__main__': qpackage_root = os.environ['QP_ROOT'] pwd_cfg = os.path.join(qpackage_root, "config/ifort_gpi2.cfg") - print get_compilation_option(pwd_cfg, "FC") - print get_compilation_option(pwd_cfg, "FCFLAGS") + print(get_compilation_option(pwd_cfg, "FC")) + print(get_compilation_option(pwd_cfg, "FCFLAGS")) diff --git a/scripts/ezfio_interface/ei_handler.py b/scripts/ezfio_interface/ei_handler.py index 23a0ce53..446d60d0 100755 --- a/scripts/ezfio_interface/ei_handler.py +++ b/scripts/ezfio_interface/ei_handler.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Welcome to the ei_handler. @@ -72,7 +72,7 @@ import sys import os import os.path -import ConfigParser +import configparser from collections import defaultdict from collections import namedtuple @@ -220,8 +220,8 @@ def get_dict_config_file(module_obj): # L o a d _ C o n f i g # # ~#~#~#~#~#~#~#~#~#~#~ # - config_file = ConfigParser.ConfigParser() - config_file.readfp(open(module_obj.path)) + config_file = configparser.ConfigParser() + config_file.read_file(open(module_obj.path)) # ~#~#~#~#~#~#~#~#~ # # F i l l _ d i c t # @@ -229,7 +229,7 @@ def get_dict_config_file(module_obj): def error(o, p, c): "o option ; p provider_name ;c module_obj.path" - print "You need a {0} for {1} in {2}".format(o, p, c) + print("You need a {0} for {1} in {2}".format(o, p, c)) for section in config_file.sections(): # pvd = provider @@ -245,13 +245,13 @@ def get_dict_config_file(module_obj): # Check if type is avalaible try: type_ = config_file.get(section, "type").strip() - except ConfigParser.NoOptionError: + except configparser.NoOptionError: error("type", pvd, module_obj.path) sys.exit(1) if type_ not in type_dict: - print "{0} not avalaible. Choose in:".format(type_).strip() - print ", ".join(sorted([i for i in type_dict])) + print("{0} not avalaible. Choose in:".format(type_).strip()) + print(", ".join(sorted([i for i in type_dict]))) sys.exit(1) else: d[pvd]["type"] = type_dict[type_] @@ -259,18 +259,18 @@ def get_dict_config_file(module_obj): # Fill the dict with REQUIRED information try: d[pvd]["doc"] = config_file.get(section, "doc") - except ConfigParser.NoOptionError: + except configparser.NoOptionError: error("doc", pvd, module_obj.path) sys.exit(1) try: interface = [i.lower().strip() for i in config_file.get(section, "interface").split(",")] - except ConfigParser.NoOptionError: + except configparser.NoOptionError: error("doc", pvd, module_obj.path) sys.exit(1) else: if not any(i in ["ezfio", "provider", "ocaml"] for i in interface): - print "Bad keyword for interface for {0}".format(pvd) + print("Bad keyword for interface for {0}".format(pvd)) sys.exit(1) else: d[pvd]["interface"] = interface @@ -279,7 +279,7 @@ def get_dict_config_file(module_obj): for option in l_info_optional: try: d[pvd][option] = config_file.get(section, option).lower() - except ConfigParser.NoOptionError: + except configparser.NoOptionError: if option in d_default: d[pvd][option] = d_default[option] @@ -287,7 +287,7 @@ def get_dict_config_file(module_obj): try: default_raw = config_file.get(section, "default") - except ConfigParser.NoOptionError: + except configparser.NoOptionError: if "ocaml" in d[pvd]["interface"]: error("default", pvd, module_obj.path) sys.exit(1) @@ -322,7 +322,7 @@ def create_ezfio_provider(dict_ezfio_cfg): dict_code_provider = dict() ez_p = EZFIO_Provider() - for provider_name, dict_info in dict_ezfio_cfg.iteritems(): + for provider_name, dict_info in dict_ezfio_cfg.items(): if "provider" in dict_info["interface"]: ez_p.set_type(dict_info['type'].fortran) ez_p.set_name(provider_name) @@ -364,7 +364,7 @@ def save_ezfio_provider(path_head, dict_code_provider): "! from file {0}/EZFIO.cfg".format(path_head), "\n"] - l_output += [code for code in dict_code_provider.values()] + l_output += [code for code in list(dict_code_provider.values())] output = "\n".join(l_output) @@ -381,22 +381,22 @@ def create_ezfio_stuff(dict_ezfio_cfg, config_or_default="config"): def size_format_to_ezfio(size_raw): """ If size_raw == "=" is a formula -> do nothing; return - Else convert the born of a multidimential array + Else convert the range of a multidimential array (12,begin:end) into (12,begin+end+1) for example - If the value are between parenthses -> do nothing; return + If the values are between parenthses -> do nothing; return """ size_raw = str(size_raw) if size_raw.startswith('='): size_convert = size_raw.replace('.', '_') else: - size_raw = provider_info["size"].translate(None, "()") + size_raw = provider_info["size"].translate(str.maketrans("","","()")) size_raw = size_raw.replace('.', '_') a_size_raw = [] for dim in size_raw.split(","): try: - (begin, end) = map(str.strip, dim.split(":")) + (begin, end) = list(map(str.strip, dim.split(":"))) except ValueError: a_size_raw.append(dim) else: @@ -423,7 +423,7 @@ def create_ezfio_stuff(dict_ezfio_cfg, config_or_default="config"): lenmax_name = max([len(i) for i in dict_ezfio_cfg]) lenmax_type = max([len(i["type"].fortran) - for i in dict_ezfio_cfg.values()]) + for i in list(dict_ezfio_cfg.values())]) str_name_format = create_format_string(lenmax_name + 2) str_type_format = create_format_string(lenmax_type + 2) @@ -433,15 +433,15 @@ def create_ezfio_stuff(dict_ezfio_cfg, config_or_default="config"): # ~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~# # # Checking is many ezfio_dir provided - l_ezfio_dir = [d['ezfio_dir'] for d in dict_ezfio_cfg.values()] + l_ezfio_dir = [d['ezfio_dir'] for d in list(dict_ezfio_cfg.values())] if not l_ezfio_dir.count(l_ezfio_dir[0]) == len(l_ezfio_dir): - print >> sys.stderr, "You have many ezfio_dir. Not supported yet" + print("You have many ezfio_dir. Not supported yet", file=sys.stderr) raise TypeError else: result = [l_ezfio_dir[0]] - for provider_name, provider_info in sorted(dict_ezfio_cfg.iteritems()): + for provider_name, provider_info in sorted(dict_ezfio_cfg.items()): # Get the value from dict name_raw = provider_info["ezfio_name"].lower() @@ -532,7 +532,7 @@ def create_ocaml_input(dict_ezfio_cfg, module_lower): l_type = [] l_doc = [] - for k, v in dict_ezfio_cfg.iteritems(): + for k, v in dict_ezfio_cfg.items(): if "ocaml" in v['interface']: l_ezfio_name.append(v['ezfio_name']) l_type.append(v["type"]) @@ -580,7 +580,7 @@ def create_ocaml_input(dict_ezfio_cfg, module_lower): '(* =~=~=~==~=~~=~=~=~=~=~=~=~ *)', ""] - for provider_name, d_val in sorted(dict_ezfio_cfg.iteritems()): + for provider_name, d_val in sorted(dict_ezfio_cfg.items()): if 'default' not in d_val: continue @@ -655,7 +655,7 @@ def get_l_module_with_auto_generate_ocaml_lower(): l_module_lower = [] import re - p = re.compile(ur'interface:.*ocaml') + p = re.compile(r'interface:.*ocaml') for f in l_folder: path = "{0}/{1}/EZFIO.cfg".format(QP_SRC, f) @@ -782,7 +782,7 @@ if __name__ == "__main__": # if arguments["list_supported_types"]: for i in sorted(get_type_dict()): - print i + print(i) sys.exit(0) if arguments["ocaml_global"]: diff --git a/scripts/ezfio_interface/ezfio_generate_ocaml.py b/scripts/ezfio_interface/ezfio_generate_ocaml.py index 3c905122..191470d8 100755 --- a/scripts/ezfio_interface/ezfio_generate_ocaml.py +++ b/scripts/ezfio_interface/ezfio_generate_ocaml.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 """ This program generates all the OCaml templates needed by qp_edit @@ -17,12 +17,12 @@ class EZFIO_ocaml(object): def __init__(self, **kwargs): - for k, v in kwargs.iteritems(): + for k, v in kwargs.items(): try: - exec "self.{0} = {1}".format(k, v) + exec("self.{0} = {1}".format(k, v)) except NameError: - exec "self.{0} = '{1}'".format(k, v) + exec("self.{0} = '{1}'".format(k, v)) @property def Ocaml_type(self): @@ -39,7 +39,7 @@ class EZFIO_ocaml(object): def check_if_init(self, l_arg, name): for i in l_arg: try: - exec "self.{0}".format(i) + exec("self.{0}".format(i)) except AttributeError: msg = "You need to provide a '{0}' for creating {1}" raise KeyError(msg.format(i, name)) diff --git a/scripts/ezfio_interface/ezfio_generate_provider.py b/scripts/ezfio_interface/ezfio_generate_provider.py index 46df7e5e..4b43a88a 100755 --- a/scripts/ezfio_interface/ezfio_generate_provider.py +++ b/scripts/ezfio_interface/ezfio_generate_provider.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 __author__ = "Applencourt PEP8" __date__ = "jeudi 26 mars 2015, 12:49:35 (UTC+0100)" @@ -88,7 +88,7 @@ END_PROVIDER def __init__(self): self.values = "type doc name ezfio_dir ezfio_name write output".split() for v in self.values: - exec "self.{0} = None".format(v) + exec("self.{0} = None".format(v)) def __repr__(self): self.set_write() @@ -96,7 +96,7 @@ END_PROVIDER for v in self.values: if not v: msg = "Error : %s is not set in EZFIO.cfg" % (v) - print >>sys.stderr, msg + print(msg, file=sys.stderr) sys.exit(1) if "size" not in self.__dict__: self.__dict__["size"] = "" @@ -167,7 +167,7 @@ def test_module(): T.set_ezfio_dir("Hartree_Fock") T.set_ezfio_name("thresh_SCF") T.set_output("output_Hartree_Fock") - print T + print(T) if __name__ == '__main__': test_module() diff --git a/scripts/generate_h_apply.py b/scripts/generate_h_apply.py index 0f63308b..dc7d340e 100644 --- a/scripts/generate_h_apply.py +++ b/scripts/generate_h_apply.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 import os @@ -105,7 +105,6 @@ class H_apply(object): s["do_mono_excitations"] = d[do_mono_exc] s["do_double_excitations"] = d[do_double_exc] s["keys_work"] += "call fill_H_apply_buffer_no_selection(key_idx,keys_out,N_int,iproc)" - s["filter_integrals"] = "array_pairs = .True." if SingleRef: s["filter_integrals"] = """ @@ -156,7 +155,7 @@ class H_apply(object): def __repr__(self): buffer = self.template - for key,value in self.data.items(): + for key,value in list(self.data.items()): buffer = buffer.replace('$'+key, value) return buffer diff --git a/scripts/hello.py b/scripts/hello.py index c533a0f4..a575026e 100644 --- a/scripts/hello.py +++ b/scripts/hello.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 import random @@ -131,8 +131,8 @@ _ __ `/___ __ \__ ___/__ __ \ """ ] - print random.choice(hello) - print "\n -- Quantum Package Shell --\n" + print(random.choice(hello)) + print("\n -- Quantum Package Shell --\n") diff --git a/scripts/module/module_handler.py b/scripts/module/module_handler.py index 160a1ce9..a6bb6d3f 100755 --- a/scripts/module/module_handler.py +++ b/scripts/module/module_handler.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Module utilitary @@ -25,7 +25,7 @@ try: from docopt import docopt from qp_path import QP_SRC, QP_ROOT, QP_PLUGINS, QP_EZFIO except ImportError: - print "source .quantum_package.rc" + print("source .quantum_package.rc") raise @@ -50,6 +50,7 @@ def get_binaries(path_module): stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() + stdout = stdout.decode() except OSError: return [] else: @@ -106,9 +107,9 @@ def get_l_module_descendant(d_child, l_module): try: l.extend(get_l_module_descendant(d_child, d_child[module])) except KeyError: - print >> sys.stderr, "Error: " - print >> sys.stderr, "`{0}` is not a submodule".format(module) - print >> sys.stderr, "Check the typo (spelling, case, '/', etc.) " + print("Error: ", file=sys.stderr) + print("`{0}` is not a submodule".format(module), file=sys.stderr) + print("Check the typo (spelling, case, '/', etc.) ", file=sys.stderr) sys.exit(1) return list(set(l)) @@ -120,7 +121,7 @@ class ModuleHandler(): @property def l_module(self): - return self.dict_child.keys() + return list(self.dict_child.keys()) @property def dict_parent(self): @@ -132,7 +133,7 @@ class ModuleHandler(): d = {} for module_name in d_child: - d[module_name] = [i for i in d_child.keys() + d[module_name] = [i for i in list(d_child.keys()) if module_name in d_child[i]] return d @@ -151,8 +152,8 @@ class ModuleHandler(): d[module_name] = get_l_module_descendant(d_child, d_child[module_name]) except KeyError: - print "Check NEED for {0}".format( - module_name) + print("Check NEED for {0}".format( + module_name)) sys.exit(1) return d @@ -185,7 +186,7 @@ class ModuleHandler(): for e in d_desc[module]: d[e] = 1 - return d.keys() + return list(d.keys()) def l_reduce_tree(self, l_module): """For a list of module in input return only the root""" @@ -218,8 +219,8 @@ if __name__ == '__main__': for module in l_module: if not is_module(module): - print "{0} is not a valid module. Abort".format(module) - print "No NEED in it" + print("{0} is not a valid module. Abort".format(module)) + print("No NEED in it") sys.exit(1) m = ModuleHandler() @@ -227,7 +228,7 @@ if __name__ == '__main__': if arguments['print_descendant']: for module in l_module: - print " ".join(sorted(m.l_descendant_unique([module]))) + print(" ".join(sorted(m.l_descendant_unique([module])))) if arguments["clean"]: diff --git a/scripts/perturbation.py b/scripts/perturbation.py index cefb89b2..0fe6cfc8 100644 --- a/scripts/perturbation.py +++ b/scripts/perturbation.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 import os from qp_path import QP_SRC @@ -7,7 +7,7 @@ Pert_dir = os.path.join(QP_SRC,"perturbation") perturbations = [] -for filename in filter(lambda x: x.endswith(".irp.f"), os.listdir(Pert_dir)): +for filename in [x for x in os.listdir(Pert_dir) if x.endswith(".irp.f")]: filename = os.path.join(Pert_dir,filename) file = open(filename,'r') @@ -22,6 +22,6 @@ for filename in filter(lambda x: x.endswith(".irp.f"), os.listdir(Pert_dir)): if __name__ == '__main__': - print 'Perturbations:' + print('Perturbations:') for k in perturbations: - print '* ', k + print('* ', k) diff --git a/scripts/utility/get_groups b/scripts/utility/get_groups index 0d79cae2..418ea6ec 100755 --- a/scripts/utility/get_groups +++ b/scripts/utility/get_groups @@ -1,7 +1,7 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- coding: utf-8 -*- -import urllib +import urllib.request, urllib.parse, urllib.error import sys from bs4 import BeautifulSoup @@ -35,11 +35,11 @@ def clean_up(text): return False else: return y[0] in irred - data = filter(f,data)[:len(irred)] + data = list(filter(f,data))[:len(irred)] for line in data: s = line.replace('*','').split() l = irred[s[0]] - data[l] = map(float,s[1:len(irred)+1]) + data[l] = list(map(float,s[1:len(irred)+1])) d = {} e = {} @@ -48,23 +48,23 @@ def clean_up(text): for k in sop: e[sop[k]] = k n = len(irred) - print "Group\t", group, "\nn\t", n - print "\n \tIrred \tOperation" + print("Group\t", group, "\nn\t", n) + print("\n \tIrred \tOperation") for i in range(n): - print "%4d \t %s \t %s"%(i+1, d[i].ljust(10), e[i].ljust(10)) + print("%4d \t %s \t %s"%(i+1, d[i].ljust(10), e[i].ljust(10))) - print "\nTable\n ", + print("\nTable\n ", end=' ') for j in range(n): - print "%8s "%(str(j+1).center(8)), + print("%8s "%(str(j+1).center(8)), end=' ') for i in range(n): - print "\n%4d "%(i+1), + print("\n%4d "%(i+1), end=' ') for j in range(n): - print "%8.5f "%(data[i][j]), - print "\n" + print("%8.5f "%(data[i][j]), end=' ') + print("\n") def main(): for group in sys.argv[1:]: - f = urllib.urlopen(address%(group)) + f = urllib.request.urlopen(address%(group)) html = f.read().split('\n',1)[1] text = clean_up(html) diff --git a/scripts/utility/qp_bitmasks.py b/scripts/utility/qp_bitmasks.py index 5107576b..38aa48d7 100644 --- a/scripts/utility/qp_bitmasks.py +++ b/scripts/utility/qp_bitmasks.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 BIT_KIND_SIZE=64 diff --git a/scripts/utility/qp_path.py b/scripts/utility/qp_path.py index 0844c06f..11756920 100644 --- a/scripts/utility/qp_path.py +++ b/scripts/utility/qp_path.py @@ -1,13 +1,14 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # -*- coding: utf-8 -*- + import os import sys try: QP_ROOT = os.environ['QP_ROOT'] except: - print "source quantum_package.rc" + print("source quantum_package.rc") sys.exit(1) else: QP_EZFIO = os.environ["QP_EZFIO"] diff --git a/src/cipsi/cipsi.irp.f b/src/cipsi/cipsi.irp.f index ba922c49..a6ab6f8e 100644 --- a/src/cipsi/cipsi.irp.f +++ b/src/cipsi/cipsi.irp.f @@ -108,6 +108,7 @@ subroutine run_cipsi n_det_before = N_det to_select = int(sqrt(dble(N_states))*dble(N_det)*selection_factor) to_select = max(N_states_diag, to_select) + to_select = max(to_select,1) call ZMQ_selection(to_select, pt2, variance, norm) PROVIDE psi_coef diff --git a/src/cipsi/energy.irp.f b/src/cipsi/energy.irp.f index 0ae5ad79..37b29593 100644 --- a/src/cipsi/energy.irp.f +++ b/src/cipsi/energy.irp.f @@ -22,8 +22,6 @@ BEGIN_PROVIDER [ double precision, pt2_E0_denominator, (N_states) ] enddo else if (h0_type == "Barycentric") then pt2_E0_denominator(1:N_states) = barycentric_electronic_energy(1:N_states) - else if (h0_type == "Variance") then - pt2_E0_denominator(1:N_states) = psi_energy(1:N_states) !1.d0-nuclear_repulsion else if (h0_type == "SOP") then pt2_E0_denominator(1:N_states) = psi_energy(1:N_states) else diff --git a/src/cipsi/selection.irp.f b/src/cipsi/selection.irp.f index af63bbd8..88012b50 100644 --- a/src/cipsi/selection.irp.f +++ b/src/cipsi/selection.irp.f @@ -13,7 +13,7 @@ END_PROVIDER BEGIN_PROVIDER [ double precision, variance_match_weight, (N_states) ] implicit none BEGIN_DOC - ! Weights adjusted along the selection to make the variances + ! Weights adjusted along the selection to make the variances ! of each state coincide. END_DOC variance_match_weight(:) = 1.d0 @@ -46,10 +46,10 @@ subroutine update_pt2_and_variance_weights(pt2, variance, norm, N_st) i_iter = 1 endif - dt = 4.d0 + dt = 4.d0 do k=1,N_st - rpt2(k) = pt2(k)/(1.d0 + norm(k)) + rpt2(k) = pt2(k)/(1.d0 + norm(k)) enddo avg = sum(rpt2(1:N_st)) / dble(N_st) @@ -90,7 +90,7 @@ BEGIN_PROVIDER [ double precision, selection_weight, (N_states) ] case (1) print *, 'Using 1/c_max^2 weight in selection' - selection_weight(1:N_states) = c0_weight(1:N_states) + selection_weight(1:N_states) = c0_weight(1:N_states) case (2) print *, 'Using pt2-matching weight in selection' @@ -114,7 +114,7 @@ BEGIN_PROVIDER [ double precision, selection_weight, (N_states) ] print *, '# var weight ', real(variance_match_weight(:),4) case (6) - print *, 'Using CI coefficient-based selection' + print *, 'Using CI coefficient-based selection' selection_weight(1:N_states) = c0_weight(1:N_states) case (7) @@ -289,34 +289,34 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d monoAdo = .true. monoBdo = .true. - - + + do k=1,N_int hole (k,1) = iand(psi_det_generators(k,1,i_generator), hole_mask(k,1)) hole (k,2) = iand(psi_det_generators(k,2,i_generator), hole_mask(k,2)) particle(k,1) = iand(not(psi_det_generators(k,1,i_generator)), particle_mask(k,1)) particle(k,2) = iand(not(psi_det_generators(k,2,i_generator)), particle_mask(k,2)) enddo - - + + integer :: N_holes(2), N_particles(2) integer :: hole_list(N_int*bit_kind_size,2) integer :: particle_list(N_int*bit_kind_size,2) - + call bitstring_to_list_ab(hole , hole_list , N_holes , N_int) call bitstring_to_list_ab(particle, particle_list, N_particles, N_int) - + integer :: l_a, nmax, idx integer, allocatable :: indices(:), exc_degree(:), iorder(:) allocate (indices(N_det), & exc_degree(max(N_det_alpha_unique,N_det_beta_unique))) - + k=1 do i=1,N_det_alpha_unique call get_excitation_degree_spin(psi_det_alpha_unique(1,i), & psi_det_generators(1,1,i_generator), exc_degree(i), N_int) enddo - + do j=1,N_det_beta_unique call get_excitation_degree_spin(psi_det_beta_unique(1,j), & psi_det_generators(1,2,i_generator), nt, N_int) @@ -332,12 +332,12 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d endif enddo enddo - + do i=1,N_det_beta_unique call get_excitation_degree_spin(psi_det_beta_unique(1,i), & psi_det_generators(1,2,i_generator), exc_degree(i), N_int) enddo - + do j=1,N_det_alpha_unique call get_excitation_degree_spin(psi_det_alpha_unique(1,j), & psi_det_generators(1,1,i_generator), nt, N_int) @@ -356,7 +356,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d endif enddo enddo - + deallocate(exc_degree) nmax=k-1 @@ -366,18 +366,18 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d enddo call isort(indices,iorder,nmax) deallocate(iorder) - + ! Start with 32 elements. Size will double along with the filtering. allocate(preinteresting(0:32), prefullinteresting(0:32), & interesting(0:32), fullinteresting(0:32)) preinteresting(:) = 0 prefullinteresting(:) = 0 - + do i=1,N_int negMask(i,1) = not(psi_det_generators(i,1,i_generator)) negMask(i,2) = not(psi_det_generators(i,2,i_generator)) end do - + do k=1,nmax i = indices(k) mobMask(1,1) = iand(negMask(1,1), psi_det_sorted(1,1,i)) @@ -388,10 +388,10 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d mobMask(j,2) = iand(negMask(j,2), psi_det_sorted(j,2,i)) nt = nt + popcnt(mobMask(j, 1)) + popcnt(mobMask(j, 2)) end do - + if(nt <= 4) then if(i <= N_det_selectors) then - sze = preinteresting(0) + sze = preinteresting(0) if (sze+1 == size(preinteresting)) then allocate (tmp_array(0:sze)) tmp_array(0:sze) = preinteresting(0:sze) @@ -403,7 +403,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d preinteresting(0) = sze+1 preinteresting(sze+1) = i else if(nt <= 2) then - sze = prefullinteresting(0) + sze = prefullinteresting(0) if (sze+1 == size(prefullinteresting)) then allocate (tmp_array(0:sze)) tmp_array(0:sze) = prefullinteresting(0:sze) @@ -422,17 +422,17 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d ! !$OMP CRITICAL ! print *, 'Step1: ', i_generator, preinteresting(0) ! !$OMP END CRITICAL - + allocate(banned(mo_num, mo_num,2), bannedOrb(mo_num, 2)) allocate (mat(N_states, mo_num, mo_num)) maskInd = -1 - + integer :: nb_count, maskInd_save logical :: monoBdo_save logical :: found do s1=1,2 do i1=N_holes(s1),1,-1 ! Generate low excitations first - + found = .False. monoBdo_save = monoBdo maskInd_save = maskInd @@ -447,21 +447,21 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d enddo if(s1 /= s2) monoBdo = .false. enddo - + if (.not.found) cycle monoBdo = monoBdo_save maskInd = maskInd_save - + h1 = hole_list(i1,s1) call apply_hole(psi_det_generators(1,1,i_generator), s1,h1, pmask, ok, N_int) - + negMask = not(pmask) - + interesting(0) = 0 fullinteresting(0) = 0 - + do ii=1,preinteresting(0) - i = preinteresting(ii) + i = preinteresting(ii) select case (N_int) case (1) mobMask(1,1) = iand(negMask(1,1), psi_det_sorted(1,1,i)) @@ -515,9 +515,9 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d endif end do end select - + if(nt <= 4) then - sze = interesting(0) + sze = interesting(0) if (sze+1 == size(interesting)) then allocate (tmp_array(0:sze)) tmp_array(0:sze) = interesting(0:sze) @@ -529,7 +529,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d interesting(0) = sze+1 interesting(sze+1) = i if(nt <= 2) then - sze = fullinteresting(0) + sze = fullinteresting(0) if (sze+1 == size(fullinteresting)) then allocate (tmp_array(0:sze)) tmp_array(0:sze) = fullinteresting(0:sze) @@ -542,9 +542,9 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d fullinteresting(sze+1) = i end if end if - + end do - + do ii=1,prefullinteresting(0) i = prefullinteresting(ii) nt = 0 @@ -560,7 +560,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d end do if(nt <= 2) then - sze = fullinteresting(0) + sze = fullinteresting(0) if (sze+1 == size(fullinteresting)) then allocate (tmp_array(0:sze)) tmp_array(0:sze) = fullinteresting(0:sze) @@ -577,7 +577,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d allocate (fullminilist (N_int, 2, fullinteresting(0)), & minilist (N_int, 2, interesting(0)) ) if(pert_2rdm)then - allocate(coef_fullminilist_rev(N_states,fullinteresting(0))) + allocate(coef_fullminilist_rev(N_states,fullinteresting(0))) do i=1,fullinteresting(0) do j = 1, N_states coef_fullminilist_rev(j,i) = psi_coef_sorted(fullinteresting(i),j) @@ -588,7 +588,7 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d do i=1,fullinteresting(0) fullminilist(1:N_int,1:2,i) = psi_det_sorted(1:N_int,1:2,fullinteresting(i)) enddo - + do i=1,interesting(0) minilist(1:N_int,1:2,i) = psi_det_sorted(1:N_int,1:2,interesting(i)) enddo @@ -624,21 +624,21 @@ subroutine select_singles_and_doubles(i_generator,hole_mask,particle_mask,fock_d monoAdo = .false. end if end if - + maskInd = maskInd + 1 if(mod(maskInd, csubset) == (subset-1)) then - + call spot_isinwf(mask, fullminilist, i_generator, fullinteresting(0), banned, fullMatch, fullinteresting) if(fullMatch) cycle ! !$OMP CRITICAL ! print *, 'Step3: ', i_generator, h1, interesting(0) ! !$OMP END CRITICAL - + call splash_pq(mask, sp, minilist, i_generator, interesting(0), bannedOrb, banned, mat, interesting) - + if(.not.pert_2rdm)then call fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_diag_tmp, E0, pt2, variance, norm, mat, buf) - else + else call fill_buffer_double_rdm(i_generator, sp, h1, h2, bannedOrb, banned, fock_diag_tmp, E0, pt2, variance, norm, mat, buf,fullminilist, coef_fullminilist_rev, fullinteresting(0)) endif end if @@ -682,7 +682,7 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d double precision, allocatable :: values(:) integer, allocatable :: keys(:,:) integer :: nkeys - + if(sp == 3) then s1 = 1 @@ -712,7 +712,7 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d ! to a determinant of the future. In that case, the determinant will be ! detected as already generated when generating in the future with a ! double excitation. -! +! ! if (.not.do_singles) then ! if ((h1 == p1) .or. (h2 == p2)) then ! cycle @@ -783,6 +783,8 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d norm(istate) = norm(istate) + coef * coef !!!DEBUG +! pt2(istate) = pt2(istate) - e_pert + alpha_h_psi**2/delta_E +! ! integer :: k ! double precision :: alpha_h_psi_2,hij ! alpha_h_psi_2 = 0.d0 @@ -792,7 +794,7 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d ! enddo ! if(dabs(alpha_h_psi_2 - alpha_h_psi).gt.1.d-12)then ! call debug_det(psi_det_generators(1,1,i_generator),N_int) -! call debug_det(det,N_int) +! call debug_det(det,N_int) ! print*,'alpha_h_psi,alpha_h_psi_2 = ',alpha_h_psi,alpha_h_psi_2 ! stop ! endif @@ -816,7 +818,7 @@ subroutine fill_buffer_double(i_generator, sp, h1, h2, bannedOrb, banned, fock_d if(pseudo_sym)then - if(dabs(mat(1, p1, p2)).lt.thresh_sym)then + if(dabs(mat(1, p1, p2)).lt.thresh_sym)then w = 0.d0 endif endif @@ -857,7 +859,7 @@ subroutine splash_pq(mask, sp, det, i_gen, N_sel, bannedOrb, banned, mat, intere negMask(i,2) = not(mask(i,2)) end do - do i=1, N_sel + do i=1, N_sel if (interesting(i) < 0) then stop 'prefetch interesting(i) and det(i)' endif @@ -1210,7 +1212,7 @@ subroutine get_d1(gen, phasemask, bannedOrb, banned, mat, mask, h, p, sp, coefs) endif end if ! enddo -! +! putj = p2 ! do puti=1,mo_num !HOT if(.not. banned(putj,puti,bant)) then @@ -1573,15 +1575,15 @@ subroutine get_d0_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, double precision, intent(in) :: coefs(N_states) double precision, intent(inout) :: mat(N_states, mo_num, mo_num) integer, intent(in) :: h(0:2,2), p(0:4,2), sp - + integer :: i, j, s, h1, h2, p1, p2, puti, putj double precision :: hij, phase double precision, external :: get_phase_bi, mo_two_e_integral logical :: ok - + integer :: bant bant = 1 - + if(sp == 3) then ! AB h1 = p(1,1) @@ -1619,7 +1621,7 @@ subroutine get_d0_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, end do end do end if -end +end subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, sp, coefs) use bitmasks @@ -1639,27 +1641,27 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, logical, allocatable :: lbanned(:,:) integer :: puti, putj, ma, mi, s1, s2, i, i1, i2, j integer :: hfix, pfix, h1, h2, p1, p2, ib - + integer, parameter :: turn2(2) = (/2,1/) integer, parameter :: turn3(2,3) = reshape((/2,3, 1,3, 1,2/), (/2,3/)) - + integer :: bant - - + + allocate (lbanned(mo_num, 2)) lbanned = bannedOrb - + do i=1, p(0,1) lbanned(p(i,1), 1) = .true. end do do i=1, p(0,2) lbanned(p(i,2), 2) = .true. end do - + ma = 1 if(p(0,2) >= 2) ma = 2 mi = turn2(ma) - + bant = 1 if(sp == 3) then @@ -1682,7 +1684,7 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, tmp_row(1:N_states,putj) += hij * coefs(1:N_states) end do - if(ma == 1) then + if(ma == 1) then mat(1:N_states,1:mo_num,puti) += tmp_row(1:N_states,1:mo_num) else mat(1:N_states,puti,1:mo_num) += tmp_row(1:N_states,1:mo_num) @@ -1701,14 +1703,14 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, hij = mo_two_e_integral(p2,pfix,hfix,puti) * get_phase_bi(phasemask, ma, mi, hfix, p2, puti, pfix, N_int) tmp_row(:,puti) += hij * coefs(:) end if - + putj = p2 if(.not. banned(putj,puti,bant)) then hij = mo_two_e_integral(p1,pfix,hfix,puti) * get_phase_bi(phasemask, ma, mi, hfix, p1, puti, pfix, N_int) tmp_row2(:,puti) += hij * coefs(:) end if end do - + if(mi == 1) then mat(:,:,p1) += tmp_row(:,:) mat(:,:,p2) += tmp_row2(:,:) @@ -1752,7 +1754,7 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, hij = mo_two_e_integral(pfix, p1, hfix, puti) * get_phase_bi(phasemask, mi, ma, hfix, pfix, puti, p1, N_int) tmp_row(:,puti) += hij * coefs(:) end if - + putj = p1 if(.not. banned(puti,putj,1)) then hij = mo_two_e_integral(pfix, p2, hfix, puti) * get_phase_bi(phasemask, mi, ma, hfix, pfix, puti, p2, N_int) @@ -1788,7 +1790,7 @@ subroutine get_d1_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, mat(:, p1, p2) += coefs(:) * hij end do end do -end +end subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, sp, coefs) use bitmasks @@ -1800,30 +1802,30 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, double precision, intent(in) :: coefs(N_states) double precision, intent(inout) :: mat(N_states, mo_num, mo_num) integer, intent(in) :: h(0:2,2), p(0:4,2), sp - + double precision, external :: get_phase_bi, mo_two_e_integral - + integer :: i, j, tip, ma, mi, puti, putj integer :: h1, h2, p1, p2, i1, i2 double precision :: hij, phase - + integer, parameter:: turn2d(2,3,4) = reshape((/0,0, 0,0, 0,0, 3,4, 0,0, 0,0, 2,4, 1,4, 0,0, 2,3, 1,3, 1,2 /), (/2,3,4/)) integer, parameter :: turn2(2) = (/2, 1/) integer, parameter :: turn3(2,3) = reshape((/2,3, 1,3, 1,2/), (/2,3/)) - + integer :: bant bant = 1 tip = p(0,1) * p(0,2) - + ma = sp if(p(0,1) > p(0,2)) ma = 1 if(p(0,1) < p(0,2)) ma = 2 mi = mod(ma, 2) + 1 - + if(sp == 3) then if(ma == 2) bant = 2 - + if(tip == 3) then puti = p(1, mi) do i = 1, 3 @@ -1835,7 +1837,7 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, p2 = p(i2, ma) h1 = h(1, ma) h2 = h(2, ma) - + hij = (mo_two_e_integral(p1, p2, h1, h2) - mo_two_e_integral(p2,p1, h1, h2)) * get_phase_bi(phasemask, ma, ma, h1, p1, h2, p2, N_int) if(ma == 1) then mat(:, putj, puti) += coefs(:) * hij @@ -1851,10 +1853,10 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, p2 = p(turn2(j), 2) do i = 1,2 puti = p(i, 1) - + if(banned(puti,putj,bant)) cycle p1 = p(turn2(i), 1) - + hij = mo_two_e_integral(p1, p2, h1, h2) * get_phase_bi(phasemask, 1, 2, h1, p1, h2, p2,N_int) mat(:, puti, putj) += coefs(:) * hij end do @@ -1870,7 +1872,7 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, do j=i+1,4 putj = p(j, ma) if(banned(puti,putj,1)) cycle - + i1 = turn2d(1, i, j) i2 = turn2d(2, i, j) p1 = p(i1, ma) @@ -1888,7 +1890,7 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, putj = p(turn3(2,i), ma) if(banned(puti,putj,1)) cycle p2 = p(i, ma) - + hij = mo_two_e_integral(p1, p2, h1, h2) * get_phase_bi(phasemask, mi, ma, h1, p1, h2, p2,N_int) mat(:, min(puti, putj), max(puti, putj)) += coefs(:) * hij end do @@ -1905,6 +1907,6 @@ subroutine get_d2_reference(gen, phasemask, bannedOrb, banned, mat, mask, h, p, end if end if end if -end +end diff --git a/src/cis/20.cis.bats b/src/cis/20.cis.bats index 130924d2..6dcb2c52 100644 --- a/src/cis/20.cis.bats +++ b/src/cis/20.cis.bats @@ -64,7 +64,7 @@ function run() { @test "SO" { # 1.9667s 2.91234s [[ -n $TRAVIS ]] && skip - run so.ezfio -25.7502102903664 -25.586265109319484 -25.582920204099572 + run so.ezfio -25.750224071640112 -25.586278842164113 -25.582933929660470 } @test "OH" { # 2.201s 2.65573s diff --git a/src/cis/h_apply.irp.f b/src/cis/h_apply.irp.f index 95aa52e4..14389bed 100644 --- a/src/cis/h_apply.irp.f +++ b/src/cis/h_apply.irp.f @@ -1,14 +1,14 @@ ! Generates subroutine H_apply_cis ! -------------------------------- -BEGIN_SHELL [ /usr/bin/env python2 ] +BEGIN_SHELL [ /usr/bin/env python3 ] from generate_h_apply import H_apply H = H_apply("cis",do_double_exc=False) -print H +print(H) H = H_apply("cis_sym",do_double_exc=False) H.filter_only_connected_to_hf() -print H +print(H) END_SHELL diff --git a/src/cisd/h_apply.irp.f b/src/cisd/h_apply.irp.f index b18f6373..fa647f8a 100644 --- a/src/cisd/h_apply.irp.f +++ b/src/cisd/h_apply.irp.f @@ -1,13 +1,13 @@ ! Generates subroutine H_apply_cisd ! ---------------------------------- -BEGIN_SHELL [ /usr/bin/env python2 ] +BEGIN_SHELL [ /usr/bin/env python3 ] from generate_h_apply import H_apply H = H_apply("cisd",do_double_exc=True) -print H +print(H) H = H_apply("cisd_sym",do_double_exc=True) H.filter_only_connected_to_hf() -print H +print(H) END_SHELL diff --git a/src/davidson/diagonalize_ci.irp.f b/src/davidson/diagonalize_ci.irp.f index 8339406f..996011cd 100644 --- a/src/davidson/diagonalize_ci.irp.f +++ b/src/davidson/diagonalize_ci.irp.f @@ -118,22 +118,22 @@ END_PROVIDER call u_0_S2_u_0(s2_eigvalues,eigenvectors,N_det,psi_det,N_int,& N_det,size(eigenvectors,1)) if (only_expected_s2) then - do j=1,N_det - ! Select at least n_states states with S^2 values closed to "expected_s2" - if(dabs(s2_eigvalues(j)-expected_s2).le.0.5d0)then - i_state +=1 - index_good_state_array(i_state) = j - good_state_array(j) = .True. - endif - if(i_state.eq.N_states) then - exit - endif - enddo - else - do j=1,N_det - index_good_state_array(j) = j + do j=1,N_det + ! Select at least n_states states with S^2 values closed to "expected_s2" + if(dabs(s2_eigvalues(j)-expected_s2).le.0.5d0)then + i_state +=1 + index_good_state_array(i_state) = j good_state_array(j) = .True. - enddo + endif + if(i_state.eq.N_states) then + exit + endif + enddo + else + do j=1,N_det + index_good_state_array(j) = j + good_state_array(j) = .True. + enddo endif if(i_state .ne.0)then ! Fill the first "i_state" states that have a correct S^2 value @@ -163,7 +163,7 @@ END_PROVIDER print*,'!!!!!!!! WARNING !!!!!!!!!' print*,' Within the ',N_det,'determinants selected' print*,' and the ',N_states_diag,'states requested' - print*,' We did not find any state with S^2 values close to ',expected_s2 + print*,' We did not find only states with S^2 values close to ',expected_s2 print*,' We will then set the first N_states eigenvectors of the H matrix' print*,' as the CI_eigenvectors' print*,' You should consider more states and maybe ask for s2_eig to be .True. or just enlarge the CI space' @@ -179,11 +179,11 @@ END_PROVIDER deallocate(index_good_state_array,good_state_array) deallocate(s2_eigvalues) else - call lapack_diag(eigenvalues,eigenvectors, & + call lapack_diag(eigenvalues,eigenvectors, & H_matrix_all_dets,size(H_matrix_all_dets,1),N_det) CI_electronic_energy(:) = 0.d0 - call u_0_S2_u_0(CI_s2,eigenvectors,N_det,psi_det,N_int,& - min(N_det,N_states_diag),size(eigenvectors,1)) + call u_0_S2_u_0(CI_s2,eigenvectors,N_det,psi_det,N_int, & + min(N_det,N_states_diag),size(eigenvectors,1)) ! Select the "N_states_diag" states of lowest energy do j=1,min(N_det,N_states_diag) do i=1,N_det @@ -213,7 +213,7 @@ subroutine diagonalize_CI ! Replace the coefficients of the |CI| states by the coefficients of the ! eigenstates of the |CI| matrix. END_DOC - integer :: i,j + integer :: i,j do j=1,N_states do i=1,N_det psi_coef(i,j) = CI_eigenvectors(i,j) diff --git a/src/density_for_dft/EZFIO.cfg b/src/density_for_dft/EZFIO.cfg index 86bbaeb1..42b8eab4 100644 --- a/src/density_for_dft/EZFIO.cfg +++ b/src/density_for_dft/EZFIO.cfg @@ -1,25 +1,23 @@ [density_for_dft] type: character*(32) -doc: Type of density used for DFT calculation. If set to WFT , it uses the density of the wave function stored in (psi_det,psi_coef). If set to input_density it uses the one-body dm stored in aux_quantities/ . If set to damping_rs_dft it uses the damped density between WFT and input_density. In the ks_scf and rs_ks_scf programs, it is set to WFT. +doc: Type of density used for DFT calculation. If set to WFT , it uses the density of the wave function stored in (psi_det,psi_coef). If set to input_density it uses the one-body dm stored in aux_quantities/ . If set to damping_rs_dft it uses the damped density between WFT and input_density. In the ks_scf and rs_ks_scf programs, it is set to WFT. interface: ezfio, provider, ocaml -default: WFT +default: WFT [damping_for_rs_dft] type: double precision -doc: damping factor for the density used in RSFT. +doc: damping factor for the density used in RSFT. interface: ezfio,provider,ocaml default: 0.5 [no_core_density] type: character*(32) -doc: Type of density -doc: if [no_core_dm] then all elements of the density matrix involving at least one orbital set as core are set to zero +doc: Type of density. If [no_core_dm] then all elements of the density matrix involving at least one orbital set as core are set to zero interface: ezfio, provider, ocaml default: full_density [normalize_dm] type: logical -doc: Type of density -doc: if .True., then you normalize the no_core_dm to elec_alpha_num - n_core_orb and elec_beta_num - n_core_orb +doc: Type of density. If .True., then you normalize the no_core_dm to elec_alpha_num - n_core_orb and elec_beta_num - n_core_orb interface: ezfio, provider, ocaml default: True diff --git a/src/determinants/EZFIO.cfg b/src/determinants/EZFIO.cfg index 40897159..ef00080b 100644 --- a/src/determinants/EZFIO.cfg +++ b/src/determinants/EZFIO.cfg @@ -76,7 +76,6 @@ type: integer interface: ezfio doc: Number of determinants to print in qp_edit type: integer -interface: ezfio [psi_coef] interface: ezfio diff --git a/src/determinants/h_apply.irp.f b/src/determinants/h_apply.irp.f index 1c79bc75..98fafb4a 100644 --- a/src/determinants/h_apply.irp.f +++ b/src/determinants/h_apply.irp.f @@ -342,139 +342,3 @@ subroutine fill_H_apply_buffer_no_selection(n_selected,det_buffer,Nint,iproc) call omp_unset_lock(H_apply_buffer_lock(1,iproc)) end -subroutine push_pt2(zmq_socket_push,pt2,norm_pert,H_pert_diag,i_generator,N_st,task_id) - use f77_zmq - implicit none - BEGIN_DOC -! Push |PT2| calculation to the collector - END_DOC - integer(ZMQ_PTR), intent(in) :: zmq_socket_push - integer, intent(in) :: N_st, i_generator - double precision, intent(in) :: pt2(N_st), norm_pert(N_st), H_pert_diag(N_st) - integer, intent(in) :: task_id - integer :: rc - - rc = f77_zmq_send( zmq_socket_push, 1, 4, ZMQ_SNDMORE) - if (rc /= 4) then - print *, irp_here, 'f77_zmq_send( zmq_socket_push, 1, 4, ZMQ_SNDMORE)' - stop 'error' - endif - - rc = f77_zmq_send( zmq_socket_push, pt2, 8*N_st, ZMQ_SNDMORE) - if (rc /= 8*N_st) then - print *, irp_here, 'f77_zmq_send( zmq_socket_push, pt2, 8*N_st, ZMQ_SNDMORE)' - stop 'error' - endif - - rc = f77_zmq_send( zmq_socket_push, norm_pert, 8*N_st, ZMQ_SNDMORE) - if (rc /= 8*N_st) then - print *, irp_here, 'f77_zmq_send( zmq_socket_push, norm_pert, 8*N_st, ZMQ_SNDMORE)' - stop 'error' - endif - - rc = f77_zmq_send( zmq_socket_push, H_pert_diag, 8*N_st, ZMQ_SNDMORE) - if (rc /= 8*N_st) then - print *, irp_here, 'f77_zmq_send( zmq_socket_push, H_pert_diag, 8*N_st, ZMQ_SNDMORE)' - stop 'error' - endif - - rc = f77_zmq_send( zmq_socket_push, i_generator, 4, ZMQ_SNDMORE) - if (rc /= 4) then - print *, irp_here, 'f77_zmq_send( zmq_socket_push, i_generator, 4, 0)' - stop 'error' - endif - - rc = f77_zmq_send( zmq_socket_push, task_id, 4, 0) - if (rc /= 4) then - print *, irp_here, 'f77_zmq_send( zmq_socket_push, task_id, 4, 0)' - stop 'error' - endif - -! Activate if zmq_socket_push is a REQ -IRP_IF ZMQ_PUSH -IRP_ELSE - integer :: idummy - rc = f77_zmq_recv( zmq_socket_push, idummy, 4, 0) - if (rc /= 4) then - print *, irp_here, 'f77_zmq_send( zmq_socket_push, idummy, 4, 0)' - stop 'error' - endif -IRP_ENDIF - -end - -subroutine pull_pt2(zmq_socket_pull,pt2,norm_pert,H_pert_diag,i_generator,N_st,n,task_id) - use f77_zmq - implicit none - BEGIN_DOC -! Pull |PT2| calculation in the collector - END_DOC - integer(ZMQ_PTR), intent(in) :: zmq_socket_pull - integer, intent(in) :: N_st - double precision, intent(out) :: pt2(N_st), norm_pert(N_st), H_pert_diag(N_st) - integer, intent(out) :: task_id - integer, intent(out) :: n, i_generator - integer :: rc - - n=0 - rc = f77_zmq_recv( zmq_socket_pull, n, 4, 0) - if (rc == -1) then - n=9 - return - endif - if (rc /= 4) then - print *, irp_here, 'f77_zmq_recv( zmq_socket_pull, n, 4, 0)' - stop 'error' - endif - - if (n > 0) then - - rc = f77_zmq_recv( zmq_socket_pull, pt2(1), 8*N_st, 0) - if (rc /= 8*N_st) then - print *, '' - print *, '' - print *, '' - print *, irp_here, 'f77_zmq_recv( zmq_socket_pull, pt2(1) , 8*N_st, 0)' - print *, rc - stop 'error' - endif - - rc = f77_zmq_recv( zmq_socket_pull, norm_pert(1), 8*N_st, 0) - if (rc /= 8*N_st) then - print *, irp_here, 'f77_zmq_recv( zmq_socket_pull, norm_pert(1,1), 8*N_st)' - stop 'error' - endif - - rc = f77_zmq_recv( zmq_socket_pull, H_pert_diag(1), 8*N_st, 0) - if (rc /= 8*N_st) then - print *, irp_here, 'f77_zmq_recv( zmq_socket_pull, H_pert_diag(1,1), 8*N_st)' - stop 'error' - endif - - rc = f77_zmq_recv( zmq_socket_pull, i_generator, 4, 0) - if (rc /= 4) then - print *, irp_here, 'f77_zmq_recv( zmq_socket_pull, i_generator, 4, 0)' - stop 'error' - endif - - rc = f77_zmq_recv( zmq_socket_pull, task_id, 4, 0) - if (rc /= 4) then - print *, irp_here, 'f77_zmq_recv( zmq_socket_pull, task_id, 4, 0)' - stop 'error' - endif - - endif - -! Activate if zmq_socket_pull is a REP -IRP_IF ZMQ_PUSH -IRP_ELSE - rc = f77_zmq_send( zmq_socket_pull, 0, 4, 0) - if (rc /= 4) then - print *, irp_here, 'f77_zmq_send( zmq_socket_pull, 0, 4, 0)' - stop 'error' - endif -IRP_ENDIF - -end - - diff --git a/src/determinants/h_apply.template.f b/src/determinants/h_apply.template.f index f16d2e7f..abdd6862 100644 --- a/src/determinants/h_apply.template.f +++ b/src/determinants/h_apply.template.f @@ -243,7 +243,7 @@ subroutine $subroutine_diexcOrg(key_in,key_mask,hole_1,particl_1,hole_2, particl ! Build array of the non-zero integrals of second excitation $filter_integrals - if (ispin == 1) then + if (ispin == 1) then integer :: jjj i=0 @@ -285,7 +285,7 @@ subroutine $subroutine_diexcOrg(key_in,key_mask,hole_1,particl_1,hole_2, particl $only_1h_double $only_1p_double $only_2h1p_double - $filter_only_connected_to_hf_double + $filter_only_connected_to_hf_double key_idx += 1 do k=1,N_int keys_out(k,1,key_idx) = key(k,1) @@ -497,7 +497,7 @@ subroutine $subroutine_monoexc(key_in, hole_1,particl_1,fock_diag_tmp,i_generato $filter_only_1h1p_single $filter_only_1h2p_single $filter_only_2h2p_single - $filter_only_connected_to_hf_single + $filter_only_connected_to_hf_single key_idx += 1 do k=1,N_int keys_out(k,1,key_idx) = hole(k,1) diff --git a/src/determinants/h_apply_zmq.template.f b/src/determinants/h_apply_zmq.template.f deleted file mode 100644 index bdea6d7b..00000000 --- a/src/determinants/h_apply_zmq.template.f +++ /dev/null @@ -1,289 +0,0 @@ -subroutine $subroutine($params_main) - implicit none - use omp_lib - use bitmasks - use f77_zmq - BEGIN_DOC - ! Calls H_apply on the |HF| determinant and selects all connected single and double - ! excitations (of the same symmetry). Auto-generated by the :file:`generate_h_apply` script. - END_DOC - - $decls_main - - integer :: i - integer :: i_generator - double precision :: wall_0, wall_1 - integer(bit_kind), allocatable :: mask(:,:,:) - integer :: ispin, k - integer :: rc - character*(512) :: task - double precision, allocatable :: fock_diag_tmp(:,:) - - $initialization - PROVIDE H_apply_buffer_allocated mo_two_e_integrals_in_map psi_det_generators psi_coef_generators - - integer(ZMQ_PTR), external :: new_zmq_pair_socket - integer(ZMQ_PTR) :: zmq_socket_pair, zmq_socket_pull - - integer(ZMQ_PTR) :: zmq_to_qp_run_socket - double precision, allocatable :: pt2_generators(:,:), norm_pert_generators(:,:) - double precision, allocatable :: H_pert_diag_generators(:,:) - double precision :: energy(N_st) - - call new_parallel_job(zmq_to_qp_run_socket,zmq_socket_pull,'$subroutine') - zmq_socket_pair = new_zmq_pair_socket(.True.) - - integer, external :: zmq_put_psi - integer, external :: zmq_put_N_det_generators - integer, external :: zmq_put_N_det_selectors - integer, external :: zmq_put_dvector - - if (zmq_put_psi(zmq_to_qp_run_socket,1) == -1) then - stop 'Unable to put psi on ZMQ server' - endif - if (zmq_put_N_det_generators(zmq_to_qp_run_socket, 1) == -1) then - stop 'Unable to put N_det_generators on ZMQ server' - endif - if (zmq_put_N_det_selectors(zmq_to_qp_run_socket, 1) == -1) then - stop 'Unable to put N_det_selectors on ZMQ server' - endif - if (zmq_put_dvector(zmq_to_qp_run_socket,1,'energy',energy,size(energy)) == -1) then - stop 'Unable to put energy on ZMQ server' - endif - - do i_generator=1,N_det_generators - $skip - write(task,*) i_generator - integer, external :: add_task_to_taskserver - if (add_task_to_taskserver(zmq_to_qp_run_socket,trim(task)) == -1) then - stop 'Unable to add task to taskserver' - endif - enddo - - allocate ( pt2_generators(N_states,N_det_generators), & - norm_pert_generators(N_states,N_det_generators), & - H_pert_diag_generators(N_states,N_det_generators) ) - - PROVIDE nproc N_states - !$OMP PARALLEL DEFAULT(NONE) & - !$OMP PRIVATE(i) & - !$OMP SHARED(zmq_socket_pair,N_states, pt2_generators, norm_pert_generators, H_pert_diag_generators, n, task_id, i_generator,zmq_socket_pull) & - !$OMP num_threads(nproc+1) - i = omp_get_thread_num() - if (i == 0) then - call $subroutine_collector(zmq_socket_pull) - integer :: n, task_id - call pull_pt2(zmq_socket_pair, pt2_generators, norm_pert_generators, H_pert_diag_generators, i_generator, size(pt2_generators), n, task_id) - else - call $subroutine_slave_inproc(i) - endif - !$OMP END PARALLEL - - - call end_zmq_pair_socket(zmq_socket_pair) - call end_parallel_job(zmq_to_qp_run_socket,zmq_socket_pull,'$subroutine') - - - $copy_buffer - $generate_psi_guess - - deallocate ( pt2_generators, norm_pert_generators, H_pert_diag_generators) -end - -subroutine $subroutine_slave_tcp(iproc) - implicit none - integer, intent(in) :: iproc - BEGIN_DOC -! Computes a buffer over the network - END_DOC - call $subroutine_slave(0,iproc) -end - -subroutine $subroutine_slave_inproc(iproc) - implicit none - integer, intent(in) :: iproc - BEGIN_DOC -! Computes a buffer using threads - END_DOC - call $subroutine_slave(1,iproc) -end - - -subroutine $subroutine_slave(thread, iproc) - implicit none - use omp_lib - use bitmasks - use f77_zmq - integer, intent(in) :: thread - BEGIN_DOC - ! Calls H_apply on the HF determinant and selects all connected single and double - ! excitations (of the same symmetry). Auto-generated by the :file:`generate_h_apply` script. - END_DOC - - integer, intent(in) :: iproc - integer :: i_generator - double precision :: wall_0, wall_1 - integer(bit_kind), allocatable :: mask(:,:,:) - integer :: ispin, k - double precision, allocatable :: fock_diag_tmp(:,:) - double precision, allocatable :: pt2(:), norm_pert(:), H_pert_diag(:) - - integer :: worker_id, task_id, rc, N_st - character*(512) :: task - integer(ZMQ_PTR),external :: new_zmq_to_qp_run_socket - integer(ZMQ_PTR) :: zmq_to_qp_run_socket - integer(ZMQ_PTR),external :: new_zmq_push_socket - integer(ZMQ_PTR) :: zmq_socket_push - - zmq_to_qp_run_socket = new_zmq_to_qp_run_socket() - - integer, external :: connect_to_taskserver - if (connect_to_taskserver(zmq_to_qp_run_socket,worker_id,thread) == -1) then - call end_zmq_to_qp_run_socket(zmq_to_qp_run_socket) - return - endif - - zmq_socket_push = new_zmq_push_socket(thread) - - N_st = N_states - allocate( pt2(N_st), norm_pert(N_st), H_pert_diag(N_st), & - mask(N_int,2,6), fock_diag_tmp(2,mo_num+1) ) - - do - integer, external :: get_task_from_taskserver - if (get_task_from_taskserver(zmq_to_qp_run_socket,worker_id, task_id, task) == -1) then - exit - endif - if (task_id == 0) exit - read(task,*) i_generator - - ! Compute diagonal of the Fock matrix - call build_fock_tmp(fock_diag_tmp,psi_det_generators(1,1,i_generator),N_int) - - pt2 = 0.d0 - norm_pert = 0.d0 - H_pert_diag = 0.d0 - - ! Create bit masks for holes and particles - do ispin=1,2 - do k=1,N_int - mask(k,ispin,s_hole) = & - iand(generators_bitmask(k,ispin,s_hole,i_bitmask_gen), & - psi_det_generators(k,ispin,i_generator) ) - mask(k,ispin,s_part) = & - iand(generators_bitmask(k,ispin,s_part,i_bitmask_gen), & - not(psi_det_generators(k,ispin,i_generator)) ) - mask(k,ispin,d_hole1) = & - iand(generators_bitmask(k,ispin,d_hole1,i_bitmask_gen), & - psi_det_generators(k,ispin,i_generator) ) - mask(k,ispin,d_part1) = & - iand(generators_bitmask(k,ispin,d_part1,i_bitmask_gen), & - not(psi_det_generators(k,ispin,i_generator)) ) - mask(k,ispin,d_hole2) = & - iand(generators_bitmask(k,ispin,d_hole2,i_bitmask_gen), & - psi_det_generators(k,ispin,i_generator) ) - mask(k,ispin,d_part2) = & - iand(generators_bitmask(k,ispin,d_part2,i_bitmask_gen), & - not (psi_det_generators(k,ispin,i_generator)) ) - enddo - enddo - - if($do_double_excitations)then - call $subroutine_diexc(psi_det_generators(1,1,i_generator), & - psi_det_generators(1,1,1), & - mask(1,1,d_hole1), mask(1,1,d_part1), & - mask(1,1,d_hole2), mask(1,1,d_part2), & - fock_diag_tmp, i_generator, iproc $params_post) - endif - if($do_mono_excitations)then - call $subroutine_monoexc(psi_det_generators(1,1,i_generator), & - mask(1,1,s_hole ), mask(1,1,s_part ), & - fock_diag_tmp, i_generator, iproc $params_post) - endif - - integer, external :: task_done_to_taskserver - if (task_done_to_taskserver(zmq_to_qp_run_socket, worker_id, task_id) == -1) then - print *, irp_here, ': Unable to send task_done' - endif - call push_pt2(zmq_socket_push,pt2,norm_pert,H_pert_diag,i_generator,N_st,task_id) - - enddo - - deallocate( mask, fock_diag_tmp, pt2, norm_pert, H_pert_diag ) - - - integer, external :: disconnect_from_taskserver - if (disconnect_from_taskserver(zmq_to_qp_run_socket,worker_id) == -1) then - continue - endif - call end_zmq_push_socket(zmq_socket_push,thread) - call end_zmq_to_qp_run_socket(zmq_to_qp_run_socket) - -end - -subroutine $subroutine_collector(zmq_socket_pull) - use f77_zmq - implicit none - BEGIN_DOC -! Collects results from the selection in an array of generators - END_DOC - - integer :: k, rc - - integer(ZMQ_PTR), external :: new_zmq_pull_socket - integer(ZMQ_PTR), intent(in) :: zmq_socket_pull - integer*8 :: control, accu - integer :: n, more, task_id, i_generator - - integer(ZMQ_PTR),external :: new_zmq_to_qp_run_socket - integer(ZMQ_PTR) :: zmq_to_qp_run_socket - - zmq_to_qp_run_socket = new_zmq_to_qp_run_socket() - - double precision, allocatable :: pt2(:), norm_pert(:), H_pert_diag(:) - double precision, allocatable :: pt2_result(:,:), norm_pert_result(:,:), H_pert_diag_result(:,:) - allocate (pt2(N_states), norm_pert(N_states), H_pert_diag(N_states)) - allocate (pt2_result(N_states,N_det_generators), norm_pert_result(N_states,N_det_generators), & - H_pert_diag_result(N_states,N_det_generators)) - - pt2_result = 0.d0 - norm_pert_result = 0.d0 - H_pert_diag_result = 0.d0 - accu = 0_8 - more = 1 - do while (more == 1) - - call pull_pt2(zmq_socket_pull, pt2, norm_pert, H_pert_diag, i_generator, N_states, n, task_id) - if (n > 0) then - do k=1,N_states - pt2_result(k,i_generator) = pt2(k) - norm_pert_result(k,i_generator) = norm_pert(k) - H_pert_diag_result(k,i_generator) = H_pert_diag(k) - enddo - accu = accu + 1_8 - integer, external :: zmq_delete_task - if (zmq_delete_task(zmq_to_qp_run_socket,zmq_socket_pull,task_id,more) == -1) then - stop 'Unable to delete task' - endif - endif - - enddo - - call end_zmq_to_qp_run_socket(zmq_to_qp_run_socket) - - - integer(ZMQ_PTR), external :: new_zmq_pair_socket - integer(ZMQ_PTR) :: socket_result - - socket_result = new_zmq_pair_socket(.False.) - - call push_pt2(socket_result, pt2_result, norm_pert_result, H_pert_diag_result, i_generator, & - N_states*N_det_generators,0) - - deallocate (pt2, norm_pert, H_pert_diag, pt2_result, norm_pert_result, H_pert_diag_result) - - call end_zmq_pair_socket(socket_result) - -end - - diff --git a/src/determinants/occ_pattern.irp.f b/src/determinants/occ_pattern.irp.f index 6e6f9c9f..d4d8c42b 100644 --- a/src/determinants/occ_pattern.irp.f +++ b/src/determinants/occ_pattern.irp.f @@ -424,7 +424,7 @@ BEGIN_PROVIDER [ double precision, weight_occ_pattern_average, (N_occ_pattern) ] enddo END_PROVIDER - BEGIN_PROVIDER [ double precision, psi_occ_pattern_sorted, (N_int,2,N_occ_pattern) ] + BEGIN_PROVIDER [ integer(bit_kind), psi_occ_pattern_sorted, (N_int,2,N_occ_pattern) ] &BEGIN_PROVIDER [ double precision, weight_occ_pattern_average_sorted, (N_occ_pattern) ] &BEGIN_PROVIDER [ integer, psi_occ_pattern_sorted_order, (N_occ_pattern) ] &BEGIN_PROVIDER [ integer, psi_occ_pattern_sorted_order_reverse, (N_occ_pattern) ] diff --git a/src/dft_one_e/e_xc_general.irp.f b/src/dft_one_e/e_xc_general.irp.f index fc9f9fd2..6c9e7bd3 100644 --- a/src/dft_one_e/e_xc_general.irp.f +++ b/src/dft_one_e/e_xc_general.irp.f @@ -3,8 +3,8 @@ BEGIN_PROVIDER [double precision, energy_x, (N_states)] BEGIN_DOC ! correlation energies general providers. END_DOC - - BEGIN_SHELL [ /usr/bin/env python2 ] + + BEGIN_SHELL [ /usr/bin/env python3 ] import os import glob from qp_path import QP_SRC @@ -13,32 +13,32 @@ os.chdir(funcdir) functionals = map(lambda x : x.replace(".irp.f",""), glob.glob("*.irp.f")) prefix = "" for f in functionals: - print """ + print(""" %sif (trim(exchange_functional) == '%s') then - energy_x = (1.d0 - HF_exchange ) * energy_x_%s"""%(prefix, f, f) + energy_x = (1.d0 - HF_exchange ) * energy_x_%s"""%(prefix, f, f)) prefix = "else " -print """ +print(""" else print *, 'exchange functional required does not exist ...' print *, 'exchange_functional ',exchange_functional - stop""" -print "endif" + stop""") +print("endif") END_SHELL - - + + END_PROVIDER - - - - + + + + BEGIN_PROVIDER [double precision, energy_c, (N_states)] implicit none BEGIN_DOC ! correlation and exchange energies general providers. END_DOC - - BEGIN_SHELL [ /usr/bin/env python2 ] + + BEGIN_SHELL [ /usr/bin/env python3 ] import os import glob from qp_path import QP_SRC @@ -47,19 +47,19 @@ os.chdir(funcdir) functionals = map(lambda x : x.replace(".irp.f",""), glob.glob("*.irp.f")) prefix = "" for f in functionals: - print """ + print(""" %sif (trim(correlation_functional) == '%s') then - energy_c = energy_c_%s"""%(prefix, f, f) + energy_c = energy_c_%s"""%(prefix, f, f) ) prefix = "else " -print """ +print(""" else print*, 'Correlation functional required does not exist ...' print*,'correlation_functional ',correlation_functional - stop""" -print "endif" + stop""") +print("endif") END_SHELL - + END_PROVIDER diff --git a/src/dft_one_e/pot_general.irp.f b/src/dft_one_e/pot_general.irp.f index 2f45a464..df292422 100644 --- a/src/dft_one_e/pot_general.irp.f +++ b/src/dft_one_e/pot_general.irp.f @@ -4,8 +4,8 @@ BEGIN_DOC ! general providers for the alpha/beta exchange potentials on the AO basis END_DOC - - BEGIN_SHELL [ /usr/bin/env python2 ] + + BEGIN_SHELL [ /usr/bin/env python3 ] import os import glob from qp_path import QP_SRC @@ -15,33 +15,33 @@ functionals = map(lambda x : x.replace(".irp.f",""), glob.glob("*.irp.f")) prefix = "" for f in functionals: - print """ + print(""" %sif (trim(exchange_functional) == '%s') then potential_x_alpha_ao = ( 1.d0 - HF_exchange ) * potential_x_alpha_ao_%s - potential_x_beta_ao = ( 1.d0 - HF_exchange ) * potential_x_beta_ao_%s"""%(prefix, f, f, f) + potential_x_beta_ao = ( 1.d0 - HF_exchange ) * potential_x_beta_ao_%s"""%(prefix, f, f, f) ) prefix = "else " -print """ +print(""" else print*, 'exchange functional required does not exist ...' print*,'exchange_functional ',exchange_functional - stop""" -print "endif" + stop""") +print("endif") END_SHELL - - + + END_PROVIDER - - - + + + BEGIN_PROVIDER [double precision, potential_c_alpha_ao,(ao_num,ao_num,N_states)] &BEGIN_PROVIDER [double precision, potential_c_beta_ao,(ao_num,ao_num,N_states)] implicit none BEGIN_DOC ! general providers for the alpha/beta correlation potentials on the AO basis END_DOC - - BEGIN_SHELL [ /usr/bin/env python2 ] + + BEGIN_SHELL [ /usr/bin/env python3 ] import os import glob from qp_path import QP_SRC @@ -51,27 +51,27 @@ functionals = map(lambda x : x.replace(".irp.f",""), glob.glob("*.irp.f")) prefix = "" for f in functionals: - print """ + print(""" %sif (trim(correlation_functional) == '%s') then potential_c_alpha_ao = potential_c_alpha_ao_%s - potential_c_beta_ao = potential_c_beta_ao_%s"""%(prefix, f, f, f) + potential_c_beta_ao = potential_c_beta_ao_%s"""%(prefix, f, f, f) ) prefix = "else " -print """ +print(""" else print*, 'Correlation functional required does not exist ...' print*,'correlation_functional ',correlation_functional - stop""" -print "endif" + stop""" ) +print("endif") END_SHELL - + END_PROVIDER - - - - - + + + + + BEGIN_PROVIDER [double precision, potential_x_alpha_mo,(mo_num,mo_num,N_states)] &BEGIN_PROVIDER [double precision, potential_x_beta_mo ,(mo_num,mo_num,N_states)] implicit none @@ -86,7 +86,7 @@ print "endif" potential_x_alpha_mo(1,1,istate), & size(potential_x_alpha_mo,1) & ) - + call ao_to_mo( & potential_x_beta_ao(1,1,istate), & size(potential_x_beta_ao,1), & @@ -94,9 +94,9 @@ print "endif" size(potential_x_beta_mo,1) & ) enddo - + END_PROVIDER - + BEGIN_PROVIDER [double precision, potential_c_alpha_mo,(mo_num,mo_num,N_states)] &BEGIN_PROVIDER [double precision, potential_c_beta_mo, (mo_num,mo_num,N_states)] implicit none @@ -111,7 +111,7 @@ print "endif" potential_c_alpha_mo(1,1,istate), & size(potential_c_alpha_mo,1) & ) - + call ao_to_mo( & potential_c_beta_ao(1,1,istate), & size(potential_c_beta_ao,1), & @@ -119,7 +119,7 @@ print "endif" size(potential_c_beta_mo,1) & ) enddo - + END_PROVIDER @@ -147,9 +147,9 @@ print "endif" enddo Trace_v_Hxc(istate) = Trace_v_xc(istate) + Trace_v_H(istate) enddo - + END_PROVIDER - + BEGIN_PROVIDER [double precision, Trace_v_xc_new, (N_states)] implicit none integer :: i,j,istate @@ -166,14 +166,14 @@ print "endif" enddo enddo enddo - + END_PROVIDER - + BEGIN_PROVIDER [double precision, potential_xc_alpha_mo,(mo_num,mo_num,N_states)] &BEGIN_PROVIDER [double precision, potential_xc_beta_mo,(mo_num,mo_num,N_states)] implicit none integer :: istate - + do istate = 1, N_states call ao_to_mo( & potential_xc_alpha_ao(1,1,istate), & @@ -181,7 +181,7 @@ print "endif" potential_xc_alpha_mo(1,1,istate), & size(potential_xc_alpha_mo,1) & ) - + call ao_to_mo( & potential_xc_beta_ao(1,1,istate), & size(potential_xc_beta_ao,1), & @@ -189,18 +189,18 @@ print "endif" size(potential_xc_beta_mo,1) & ) enddo - + END_PROVIDER - - + + BEGIN_PROVIDER [double precision, potential_xc_alpha_ao,(ao_num,ao_num,N_states)] &BEGIN_PROVIDER [double precision, potential_xc_beta_ao,(ao_num,ao_num,N_states)] implicit none BEGIN_DOC ! general providers for the alpha/beta exchange/correlation potentials on the AO basis END_DOC - - BEGIN_SHELL [ /usr/bin/env python2 ] + + BEGIN_SHELL [ /usr/bin/env python3 ] import os import glob from qp_path import QP_SRC @@ -210,19 +210,19 @@ functionals = map(lambda x : x.replace(".irp.f",""), glob.glob("*.irp.f")) prefix = "" for f in functionals: - print """ + print(""" %sif (trim(exchange_functional) == '%s') then potential_xc_alpha_ao = potential_xc_alpha_ao_%s - potential_xc_beta_ao = potential_xc_beta_ao_%s"""%(prefix, f, f, f) + potential_xc_beta_ao = potential_xc_beta_ao_%s"""%(prefix, f, f, f) ) prefix = "else " -print """ +print(""" else print*, 'exchange functional required does not exist ...' print*,'exchange_functional ',exchange_functional - stop""" -print "endif" + stop""") +print("endif") END_SHELL - + END_PROVIDER diff --git a/src/perturbation/perturbation.irp.f b/src/perturbation/perturbation.irp.f index 040f3026..cde52027 100644 --- a/src/perturbation/perturbation.irp.f +++ b/src/perturbation/perturbation.irp.f @@ -1,4 +1,4 @@ -BEGIN_SHELL [ /usr/bin/env python2 ] +BEGIN_SHELL [ /usr/bin/env python3 ] from perturbation import perturbations import os @@ -8,6 +8,6 @@ template = file.read() file.close() for p in perturbations: - print template.replace("$PERT",p) + print(template.replace("$PERT",p)) END_SHELL diff --git a/src/perturbation/perturbation.template.f b/src/perturbation/perturbation.template.f index 0a7ca181..558b92a9 100644 --- a/src/perturbation/perturbation.template.f +++ b/src/perturbation/perturbation.template.f @@ -1,4 +1,4 @@ -BEGIN_SHELL [ /usr/bin/env python2 ] +BEGIN_SHELL [ /usr/bin/env python3 ] import perturbation END_SHELL diff --git a/src/scf_utils/diagonalize_fock.irp.f b/src/scf_utils/diagonalize_fock.irp.f index 865b4d31..d501278f 100644 --- a/src/scf_utils/diagonalize_fock.irp.f +++ b/src/scf_utils/diagonalize_fock.irp.f @@ -7,11 +7,11 @@ BEGIN_PROVIDER [ double precision, eigenvectors_Fock_matrix_mo, (ao_num,mo_num) integer :: i,j integer :: liwork, lwork, n, info integer, allocatable :: iwork(:) - double precision, allocatable :: work(:), F(:,:), S(:,:) + double precision, allocatable :: work(:), F(:,:), F_save(:,:) double precision, allocatable :: diag(:) - allocate( F(mo_num,mo_num) ) + allocate( F(mo_num,mo_num), F_save(mo_num,mo_num) ) allocate (diag(mo_num) ) do j=1,mo_num @@ -51,6 +51,7 @@ BEGIN_PROVIDER [ double precision, eigenvectors_Fock_matrix_mo, (ao_num,mo_num) lwork = -1 liwork = -1 + F_save = F call dsyevd( 'V', 'U', mo_num, F, & size(F,1), diag, work, lwork, iwork, liwork, info) @@ -71,6 +72,7 @@ BEGIN_PROVIDER [ double precision, eigenvectors_Fock_matrix_mo, (ao_num,mo_num) if (info /= 0) then + F = F_save call dsyev( 'V', 'L', mo_num, F, & size(F,1), diag, work, lwork, info) @@ -83,7 +85,7 @@ BEGIN_PROVIDER [ double precision, eigenvectors_Fock_matrix_mo, (ao_num,mo_num) call dgemm('N','N',ao_num,mo_num,mo_num, 1.d0, & mo_coef, size(mo_coef,1), F, size(F,1), & 0.d0, eigenvectors_Fock_matrix_mo, size(eigenvectors_Fock_matrix_mo,1)) - deallocate(work, F, diag) + deallocate(work, F, F_save, diag) END_PROVIDER diff --git a/src/scf_utils/roothaan_hall_scf.irp.f b/src/scf_utils/roothaan_hall_scf.irp.f index faf23a51..ea472cdf 100644 --- a/src/scf_utils/roothaan_hall_scf.irp.f +++ b/src/scf_utils/roothaan_hall_scf.irp.f @@ -299,6 +299,7 @@ END_DOC Fock_matrix_AO_(i,j) = 0.d0 enddo do k=1,dim_DIIS + if (dabs(X_vector_DIIS(k)) < 1.d-10) cycle do i=1,ao_num Fock_matrix_AO_(i,j) = Fock_matrix_AO_(i,j) + & X_vector_DIIS(k)*Fock_matrix_DIIS(i,j,dim_DIIS-k+1) diff --git a/src/tools/print_energy.irp.f b/src/tools/print_energy.irp.f new file mode 100644 index 00000000..4703e7d4 --- /dev/null +++ b/src/tools/print_energy.irp.f @@ -0,0 +1,34 @@ +program print_energy + implicit none + BEGIN_DOC + ! Prints the energy of the wave function stored in the |EZFIO| directory. + END_DOC + + ! this has to be done in order to be sure that N_det, psi_det and + ! psi_coef_sorted are the wave function stored in the |EZFIO| directory. + read_wf = .True. + touch read_wf + call run +end + +subroutine run + implicit none + integer :: i + double precision :: i_H_psi_array(N_states) + double precision :: E(N_states) + double precision :: norm(N_states) + + E(:) = nuclear_repulsion + norm(:) = 0.d0 + do i=1,N_det + call i_H_psi(psi_det(1,1,i), psi_det, psi_coef, N_int, N_det, & + size(psi_coef,1), N_states, i_H_psi_array) + norm(:) += psi_coef(i,:)**2 + E(:) += i_H_psi_array(:) * psi_coef(i,:) + enddo + + print *, 'Energy:' + do i=1,N_states + print *, E(i)/norm(i) + enddo +end diff --git a/src/tools/print_hamiltonian.irp.f b/src/tools/print_hamiltonian.irp.f new file mode 100644 index 00000000..207161dd --- /dev/null +++ b/src/tools/print_hamiltonian.irp.f @@ -0,0 +1,29 @@ +program print_hamiltonian + implicit none + BEGIN_DOC + ! Prints the Hamiltonian matrix defined in the space of determinants + ! present in the |EZFIO| directory. + END_DOC + + ! this has to be done in order to be sure that N_det, psi_det and + ! psi_coef_sorted are the wave function stored in the |EZFIO| directory. + read_wf = .True. + touch read_wf + call run +end + +subroutine run + implicit none + integer :: i, j + double precision :: hij + + do j=1,N_det + do i=1,N_det + call i_H_j(psi_det(1,1,i), psi_det(1,1,j), N_int, hij) + if (dabs(hij) > 1.d-20) then + print *, i, j, hij + endif + enddo + enddo + +end diff --git a/src/zmq/f77_zmq.h b/src/zmq/f77_zmq_free.h similarity index 100% rename from src/zmq/f77_zmq.h rename to src/zmq/f77_zmq_free.h diff --git a/src/zmq/f77_zmq_module.f90 b/src/zmq/f77_zmq_module.f90 index d0f551fa..1e4a5af3 100644 --- a/src/zmq/f77_zmq_module.f90 +++ b/src/zmq/f77_zmq_module.f90 @@ -1,4 +1,4 @@ module f77_zmq - include 'f77_zmq.h' + include 'f77_zmq_free.h' end module diff --git a/tests/bats_to_sh.py b/tests/bats_to_sh.py index 89bf1eb5..7194af77 100755 --- a/tests/bats_to_sh.py +++ b/tests/bats_to_sh.py @@ -1,11 +1,11 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 import sys with open(sys.argv[1],'r') as f: raw_data = f.read() -print "set -x" +print("set -x") output = [] inside = False @@ -25,9 +25,9 @@ for i in raw_data: level -= 1 output.append(new_i) -print "".join(output).replace("@test ", +print("".join(output).replace("@test ", """[[ -z $BATS_TEST_NUMBER ]] && BATS_TEST_NUMBER=0 || ((++BATS_TEST_NUMBER)) ; -export BATS_TEST_DESCRIPTION=""").replace("skip","return") +export BATS_TEST_DESCRIPTION=""").replace("skip","return"))