diff --git a/.gitignore b/.gitignore index 9d79d718..9d9c4fdb 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ build.ninja .ninja_deps bin/ lib/ -config/qp_create_ninja.pickle \ No newline at end of file +config/qp_create_ninja.pickle +src/*/.gitignore diff --git a/config/gfortran.cfg b/config/gfortran.cfg index 86f625c6..c1032aa1 100644 --- a/config/gfortran.cfg +++ b/config/gfortran.cfg @@ -10,7 +10,7 @@ # # [COMMON] -FC : gfortran -ffree-line-length-none -I . -mavx +FC : gfortran -g -ffree-line-length-none -I . LAPACK_LIB : -llapack -lblas IRPF90 : irpf90 IRPF90_FLAGS : --ninja --align=32 @@ -35,7 +35,7 @@ OPENMP : 1 ; Append OpenMP flags # -ffast-math and the Fortran-specific # -fno-protect-parens and -fstack-arrays. [OPT] -FCFLAGS : -Ofast -g +FCFLAGS : -Ofast # Profiling flags ################# diff --git a/configure b/configure index fa207f6e..496b6ade 100755 --- a/configure +++ b/configure @@ -7,15 +7,16 @@ Usage: configure (--production | --development) Options: - config_file A config file with all the information for the compilation + config_file A config file with all the information for compiling. Example config_files are given in config/ - --production You can only compile all the modules with this flag, - but the compilation will be lighting fast + --production You can only compile **all** the modules with this flag, + but it will compile lighting fast. + + --development this will create a build.ninja for each directory which + contains a binary. In a second step you may compile them + individually if you like. - --development It will create a build.ninja for each directory - who contains a binary, than you can compile then - individualy if you want Examples: @@ -163,7 +164,7 @@ def find_path(bin_, l_installed, var_for_qp_root=False): # | |_| | | (_ |_ | (_) | | # def check_output(*popenargs, **kwargs): - """Run command with arguments and return its output as a byte string. + """Run command with arguments and return its output as a string. Backported from Python 2.7 as it's implemented as pure python on stdlib. @@ -189,7 +190,7 @@ def check_output(*popenargs, **kwargs): def checking(d_dependency): """ For each key in d_dependency check if it - it avalabie or not + is avalabie or not """ def check_python(): @@ -205,8 +206,8 @@ def checking(d_dependency): def check_availability(binary): """ - If avalable return the path who can find the - binary else return 0 + If avalable return the path where the binary + can be found, else return 0 """ if binary == "python": @@ -254,7 +255,7 @@ def checking(d_dependency): """ - print "Checking what you need to install and what is it avalaible" + print "Checking what you need to install and what is avalaible" print "" l_installed = dict() l_needed = [] @@ -327,7 +328,7 @@ _|_ | | _> |_ (_| | | (_| |_ | (_) | | d_print = { "install_ninja": "Install ninja...", "build": "Creating build.ninja...", - "install": "Installing the dependency through ninja..." + "install": "Installing the dependencies with Ninja..." } length = max(map(len, d_print.values())) @@ -486,7 +487,7 @@ def create_ninja_and_rc(l_installed): subprocess.check_call(" ".join(l), shell=True,stderr=dnull) except: print "[ FAIL ]" - print "Check the valididy of the config file provided ({0})".format(sys.argv[1]) + print "Check the validity of the config file provided ({0})".format(sys.argv[1]) print "Exit..." sys.exit(1) @@ -498,6 +499,11 @@ def recommendation(): path = join(QP_ROOT, "quantum_package.rc") print "Now :" print " source {0}".format(path) + print "" + print "Then, install the modules you want to install using :" + print " qp_install_module.py " + print "" + print "Finally :" print " ninja" print " make -C ocaml" print "" diff --git a/ocaml/.gitignore b/ocaml/.gitignore index 732176bc..5618a6c0 100644 --- a/ocaml/.gitignore +++ b/ocaml/.gitignore @@ -1,50 +1,47 @@ -.gitignore -ezfio.ml -Qptypes.ml -qptypes_generator.byte _build -qp_create_ezfio_from_xyz.native -qp_set_ddci.native -qp_print.native -qp_edit.native -qp_set_mo_class.native -qp_basis_clean.native -qp_run.native -qp_edit.native -test_mo_label.byte -test_point3d.byte -test_gto.byte -test_excitation.byte -test_determinants.byte -test_basis.byte -test_molecule.byte -test_elements.byte -test_bitlist.byte -test_atom.byte -test_mo_label -test_point3d -test_gto -test_excitation -test_determinants -test_basis -test_molecule -test_elements -test_bitlist -test_atom -qp_create_ezfio_from_xyz -qp_set_ddci -qp_print -qp_edit -qp_set_mo_class -qp_basis_clean -qp_run -Input_determinants.ml -Input_integrals_bielec.ml -Input_pseudo.ml -Input_perturbation.ml -Input_hartree_fock.ml -Input_properties.ml -qp_edit.ml -qp_edit -qp_edit.native +ezfio.ml +.gitignore Input_auto_generated.ml +Input_determinants.ml +Input_hartree_fock.ml +Input_integrals_bielec.ml +Input_perturbation.ml +Input_properties.ml +Input_pseudo.ml +qp_basis_clean +qp_basis_clean.native +qp_create_ezfio_from_xyz +qp_create_ezfio_from_xyz.native +qp_edit +qp_edit.ml +qp_edit.native +qp_print +qp_print.native +qp_run +qp_run.native +qp_set_ddci +qp_set_ddci.native +qp_set_mo_class +qp_set_mo_class.native +qptypes_generator.byte +Qptypes.ml +test_atom +test_atom.byte +test_basis +test_basis.byte +test_bitlist +test_bitlist.byte +test_determinants +test_determinants.byte +test_elements +test_elements.byte +test_excitation +test_excitation.byte +test_gto +test_gto.byte +test_mo_label +test_mo_label.byte +test_molecule +test_molecule.byte +test_point3d +test_point3d.byte diff --git a/ocaml/Makefile b/ocaml/Makefile index 07803368..dce21ca5 100644 --- a/ocaml/Makefile +++ b/ocaml/Makefile @@ -30,7 +30,7 @@ default: $(ALL_TESTS) $(ALL_EXE) .gitignore qp_edit.ml qp_edit qp_edit.native Input_auto_generated.ml;\ do \ echo $$i ; \ - done > .gitignore + done |sort | uniq > .gitignore executables: $(QP_ROOT)/data/executables diff --git a/plugins/CAS_SD/README.rst b/plugins/CAS_SD/README.rst index c030ac5e..258410a1 100644 --- a/plugins/CAS_SD/README.rst +++ b/plugins/CAS_SD/README.rst @@ -118,101 +118,69 @@ Documentation Undocumented -`h_apply_cas_sd `_ +`h_apply_cas_sd `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cas_sd_diexc `_ - Undocumented - - -`h_apply_cas_sd_diexcorg `_ +`h_apply_cas_sd_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cas_sd_diexcp `_ - Undocumented - - -`h_apply_cas_sd_monoexc `_ +`h_apply_cas_sd_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cas_sd_pt2 `_ +`h_apply_cas_sd_pt2 `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cas_sd_pt2_diexc `_ - Undocumented - - -`h_apply_cas_sd_pt2_diexcorg `_ +`h_apply_cas_sd_pt2_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cas_sd_pt2_diexcp `_ - Undocumented - - -`h_apply_cas_sd_pt2_monoexc `_ +`h_apply_cas_sd_pt2_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cas_sd_selected `_ +`h_apply_cas_sd_selected `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cas_sd_selected_diexc `_ - Undocumented - - -`h_apply_cas_sd_selected_diexcorg `_ +`h_apply_cas_sd_selected_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cas_sd_selected_diexcp `_ - Undocumented - - -`h_apply_cas_sd_selected_monoexc `_ +`h_apply_cas_sd_selected_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cas_sd_selected_no_skip `_ +`h_apply_cas_sd_selected_no_skip `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cas_sd_selected_no_skip_diexc `_ - Undocumented - - -`h_apply_cas_sd_selected_no_skip_diexcorg `_ +`h_apply_cas_sd_selected_no_skip_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cas_sd_selected_no_skip_diexcp `_ - Undocumented - - -`h_apply_cas_sd_selected_no_skip_monoexc `_ +`h_apply_cas_sd_selected_no_skip_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. diff --git a/plugins/CIS/README.rst b/plugins/CIS/README.rst index 008675e0..60a36cdb 100644 --- a/plugins/CIS/README.rst +++ b/plugins/CIS/README.rst @@ -48,3 +48,44 @@ Needed Modules * `Selectors_full `_ * `SingleRefMethod `_ +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Selectors_full `_ +* `SingleRefMethod `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`cis `_ + Undocumented + + +`h_apply_cis `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cis_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cis_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`super_ci `_ + Undocumented + diff --git a/plugins/CISD/.gitignore b/plugins/CISD/.gitignore index 5c7aee18..49d9e244 100644 --- a/plugins/CISD/.gitignore +++ b/plugins/CISD/.gitignore @@ -20,7 +20,6 @@ Pseudo Selectors_full SingleRefMethod Utils -cisd cisd_lapack ezfio_interface.irp.f irpf90.make diff --git a/plugins/CISD/README.rst b/plugins/CISD/README.rst index 2ba297fb..79123d2a 100644 --- a/plugins/CISD/README.rst +++ b/plugins/CISD/README.rst @@ -42,3 +42,40 @@ Documentation particles. Assume N_int is already provided. +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Selectors_full `_ +* `SingleRefMethod `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`cisd `_ + Undocumented + + +`h_apply_cisd `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + diff --git a/plugins/CISD/cisd.irp.f b/plugins/CISD/cisd.irp.f index 6d310d95..1af891d8 100644 --- a/plugins/CISD/cisd.irp.f +++ b/plugins/CISD/cisd.irp.f @@ -14,6 +14,7 @@ program cisd enddo call save_wavefunction + call ezfio_set_cisd_energy(CI_energy(1)) ! call CISD_SC2(psi_det,psi_coef,eigvalues,size(psi_coef,1),N_det,N_states,N_int) ! do i = 1, N_states ! print*,'eigvalues(i) = ',eigvalues(i) diff --git a/plugins/CISD/tree_dependency.png b/plugins/CISD/tree_dependency.png index fcf48831..fbe8169d 100644 Binary files a/plugins/CISD/tree_dependency.png and b/plugins/CISD/tree_dependency.png differ diff --git a/plugins/CISD_selected/EZFIO.cfg b/plugins/CISD_selected/EZFIO.cfg new file mode 100644 index 00000000..e1b78dba --- /dev/null +++ b/plugins/CISD_selected/EZFIO.cfg @@ -0,0 +1,10 @@ +[energy] +type: double precision +doc: Variational Selected CISD energy +interface: ezfio + +[energy_pt2] +type: double precision +doc: Estimated CISD energy (including PT2) +interface: ezfio + diff --git a/plugins/CISD_selected/README.rst b/plugins/CISD_selected/README.rst index e7a3c5cb..12ee6318 100644 --- a/plugins/CISD_selected/README.rst +++ b/plugins/CISD_selected/README.rst @@ -179,3 +179,197 @@ Needed Modules * `Perturbation `_ * `CISD `_ +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Perturbation `_ +* `CISD `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`cisd `_ + Undocumented + + +`h_apply_cisd `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection `_ + Undocumented + + +`h_apply_cisd_selection_delta_rho_one_point `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_delta_rho_one_point_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_delta_rho_one_point_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_dipole_moment_z `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_dipole_moment_z_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_dipole_moment_z_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_2x2 `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_2x2_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_2x2_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2 `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_projected `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_projected_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_projected_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_h_core `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_h_core_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_h_core_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_moller_plesset `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_moller_plesset_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_moller_plesset_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + diff --git a/plugins/CISD_selected/cisd_selection.irp.f b/plugins/CISD_selected/cisd_selection.irp.f index b05e9ea4..b2178860 100644 --- a/plugins/CISD_selected/cisd_selection.irp.f +++ b/plugins/CISD_selected/cisd_selection.irp.f @@ -43,4 +43,6 @@ program cisd call diagonalize_CI deallocate(pt2,norm_pert,H_pert_diag) call save_wavefunction + call ezfio_set_cisd_selected_energy(CI_energy) + call ezfio_set_cisd_selected_energy_pt2(CI_energy+pt2) end diff --git a/plugins/FCIdump/.gitignore b/plugins/FCIdump/.gitignore index 076918bf..0a548a14 100644 --- a/plugins/FCIdump/.gitignore +++ b/plugins/FCIdump/.gitignore @@ -1,23 +1,23 @@ -# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py -IRPF90_temp -IRPF90_man -irpf90_entities -tags -irpf90.make -Makefile -Makefile.depend -.ninja_log +# Automatically created by $QP_ROOT/scripts/module/module_handler.py .ninja_deps -ezfio_interface.irp.f -Ezfio_files +.ninja_log +AO_Basis +Bitmask Determinants +Electrons +Ezfio_files +IRPF90_man +IRPF90_temp +Integrals_Bielec Integrals_Monoelec MO_Basis -Utils -Pseudo -Bitmask -AO_Basis -Electrons +Makefile +Makefile.depend Nuclei -Integrals_Bielec -fcidump \ No newline at end of file +Pseudo +Utils +ezfio_interface.irp.f +fcidump +irpf90.make +irpf90_entities +tags \ No newline at end of file diff --git a/plugins/FCIdump/README.rst b/plugins/FCIdump/README.rst index f867eb70..4c1908c9 100644 --- a/plugins/FCIdump/README.rst +++ b/plugins/FCIdump/README.rst @@ -23,3 +23,22 @@ Needed Modules * `Determinants `_ +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Determinants `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`fcidump `_ + Undocumented + diff --git a/plugins/Full_CI/.gitignore b/plugins/Full_CI/.gitignore deleted file mode 100644 index a806bcbc..00000000 --- a/plugins/Full_CI/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -# Automatically created by $QP_ROOT/scripts/module/module_handler.py -.ninja_deps -.ninja_log -AO_Basis -Bitmask -Determinants -Electrons -Ezfio_files -Generators_full -Hartree_Fock -IRPF90_man -IRPF90_temp -Integrals_Bielec -Integrals_Monoelec -MOGuess -MO_Basis -Makefile -Makefile.depend -Nuclei -Perturbation -Properties -Pseudo -Selectors_full -Utils -ezfio_interface.irp.f -full_ci -full_ci_no_skip -irpf90.make -irpf90_entities -tags -target_pt2 -var_pt2_ratio \ No newline at end of file diff --git a/plugins/Full_CI/README.rst b/plugins/Full_CI/README.rst index 5b0f04db..bc2307cd 100644 --- a/plugins/Full_CI/README.rst +++ b/plugins/Full_CI/README.rst @@ -27,201 +27,137 @@ Documentation Undocumented -`h_apply_fci `_ +`h_apply_fci `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_fci_diexc `_ - Undocumented - - -`h_apply_fci_diexcorg `_ +`h_apply_fci_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_diexcp `_ - Undocumented - - -`h_apply_fci_mono `_ +`h_apply_fci_mono `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_fci_mono_diexc `_ - Undocumented - - -`h_apply_fci_mono_diexcorg `_ +`h_apply_fci_mono_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_mono_diexcp `_ - Undocumented - - -`h_apply_fci_mono_monoexc `_ +`h_apply_fci_mono_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_monoexc `_ +`h_apply_fci_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_no_skip `_ +`h_apply_fci_no_skip `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_fci_no_skip_diexc `_ - Undocumented - - -`h_apply_fci_no_skip_diexcorg `_ +`h_apply_fci_no_skip_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_no_skip_diexcp `_ - Undocumented - - -`h_apply_fci_no_skip_monoexc `_ +`h_apply_fci_no_skip_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_pt2 `_ +`h_apply_fci_pt2 `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_fci_pt2_diexc `_ - Undocumented - - -`h_apply_fci_pt2_diexcorg `_ +`h_apply_fci_pt2_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_pt2_diexcp `_ - Undocumented - - -`h_apply_fci_pt2_monoexc `_ +`h_apply_fci_pt2_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_mono_delta_rho `_ +`h_apply_pt2_mono_delta_rho `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_pt2_mono_delta_rho_diexc `_ - Undocumented - - -`h_apply_pt2_mono_delta_rho_diexcorg `_ +`h_apply_pt2_mono_delta_rho_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_mono_delta_rho_diexcp `_ - Undocumented - - -`h_apply_pt2_mono_delta_rho_monoexc `_ +`h_apply_pt2_mono_delta_rho_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_mono_di_delta_rho `_ +`h_apply_pt2_mono_di_delta_rho `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_pt2_mono_di_delta_rho_diexc `_ - Undocumented - - -`h_apply_pt2_mono_di_delta_rho_diexcorg `_ +`h_apply_pt2_mono_di_delta_rho_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_mono_di_delta_rho_diexcp `_ - Undocumented - - -`h_apply_pt2_mono_di_delta_rho_monoexc `_ +`h_apply_pt2_mono_di_delta_rho_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_select_mono_delta_rho `_ +`h_apply_select_mono_delta_rho `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_select_mono_delta_rho_diexc `_ - Undocumented - - -`h_apply_select_mono_delta_rho_diexcorg `_ +`h_apply_select_mono_delta_rho_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_select_mono_delta_rho_diexcp `_ - Undocumented - - -`h_apply_select_mono_delta_rho_monoexc `_ +`h_apply_select_mono_delta_rho_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_select_mono_di_delta_rho `_ +`h_apply_select_mono_di_delta_rho `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_select_mono_di_delta_rho_diexc `_ - Undocumented - - -`h_apply_select_mono_di_delta_rho_diexcorg `_ +`h_apply_select_mono_di_delta_rho_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_select_mono_di_delta_rho_diexcp `_ - Undocumented - - -`h_apply_select_mono_di_delta_rho_monoexc `_ +`h_apply_select_mono_di_delta_rho_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. diff --git a/plugins/Full_CI/target_pt2.irp.f b/plugins/Full_CI/target_pt2.irp.f index c0420e20..f86a21a4 100644 --- a/plugins/Full_CI/target_pt2.irp.f +++ b/plugins/Full_CI/target_pt2.irp.f @@ -26,6 +26,9 @@ program var_pt2_ratio_run soft_touch N_det psi_det psi_coef call diagonalize_CI ratio = (CI_energy(1) - HF_energy) / (CI_energy(1)+pt2(1) - HF_energy) + if (N_det > 20000) then + exit + endif enddo threshold_selectors = 1.d0 diff --git a/plugins/Full_CI/tree_dependency.png b/plugins/Full_CI/tree_dependency.png index caedb2e0..0dca9e35 100644 Binary files a/plugins/Full_CI/tree_dependency.png and b/plugins/Full_CI/tree_dependency.png differ diff --git a/plugins/Generators_full/tree_dependency.png b/plugins/Generators_full/tree_dependency.png index 94ad6358..ec074255 100644 Binary files a/plugins/Generators_full/tree_dependency.png and b/plugins/Generators_full/tree_dependency.png differ diff --git a/plugins/Hartree_Fock/Fock_matrix.irp.f b/plugins/Hartree_Fock/Fock_matrix.irp.f index 7dd349b1..2561ad03 100644 --- a/plugins/Hartree_Fock/Fock_matrix.irp.f +++ b/plugins/Hartree_Fock/Fock_matrix.irp.f @@ -111,18 +111,27 @@ END_PROVIDER integer*8 :: p,q double precision :: integral double precision :: ao_bielec_integral + double precision, allocatable :: ao_bi_elec_integral_alpha_tmp(:,:) + double precision, allocatable :: ao_bi_elec_integral_beta_tmp(:,:) + !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: ao_bi_elec_integral_beta_tmp + !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: ao_bi_elec_integral_alpha_tmp + + ao_bi_elec_integral_alpha = 0.d0 + ao_bi_elec_integral_beta = 0.d0 if (do_direct_integrals) then - ao_bi_elec_integral_alpha = 0.d0 - ao_bi_elec_integral_beta = 0.d0 !$OMP PARALLEL DEFAULT(NONE) & - !$OMP PRIVATE(i,j,l,k1,k,integral,ii,jj,kk,ll,i8,keys,values,p,q,r,s)& - !$OMP SHARED(ao_num,HF_density_matrix_ao_alpha,HF_density_matrix_ao_beta,& + !$OMP PRIVATE(i,j,l,k1,k,integral,ii,jj,kk,ll,i8,keys,values,p,q,r,s, & + !$OMP ao_bi_elec_integral_alpha_tmp,ao_bi_elec_integral_beta_tmp)& + !$OMP SHARED(ao_num,ao_num_align,HF_density_matrix_ao_alpha,HF_density_matrix_ao_beta,& !$OMP ao_integrals_map,ao_integrals_threshold, ao_bielec_integral_schwartz, & - !$OMP ao_overlap_abs) & - !$OMP REDUCTION(+:ao_bi_elec_integral_alpha,ao_bi_elec_integral_beta) + !$OMP ao_overlap_abs, ao_bi_elec_integral_alpha, ao_bi_elec_integral_beta) allocate(keys(1), values(1)) + allocate(ao_bi_elec_integral_alpha_tmp(ao_num_align,ao_num), & + ao_bi_elec_integral_beta_tmp(ao_num_align,ao_num)) + ao_bi_elec_integral_alpha_tmp = 0.d0 + ao_bi_elec_integral_beta_tmp = 0.d0 q = ao_num*ao_num*ao_num*ao_num !$OMP DO SCHEDULE(dynamic) @@ -160,15 +169,21 @@ END_PROVIDER k = kk(k2) l = ll(k2) integral = (HF_density_matrix_ao_alpha(k,l)+HF_density_matrix_ao_beta(k,l)) * values(1) - ao_bi_elec_integral_alpha(i,j) += integral - ao_bi_elec_integral_beta (i,j) += integral + ao_bi_elec_integral_alpha_tmp(i,j) += integral + ao_bi_elec_integral_beta_tmp (i,j) += integral integral = values(1) - ao_bi_elec_integral_alpha(l,j) -= HF_density_matrix_ao_alpha(k,i) * integral - ao_bi_elec_integral_beta (l,j) -= HF_density_matrix_ao_beta (k,i) * integral + ao_bi_elec_integral_alpha_tmp(l,j) -= HF_density_matrix_ao_alpha(k,i) * integral + ao_bi_elec_integral_beta_tmp (l,j) -= HF_density_matrix_ao_beta (k,i) * integral enddo enddo - !$OMP END DO - deallocate(keys,values) + !$OMP END DO NOWAIT + !$OMP CRITICAL + ao_bi_elec_integral_alpha += ao_bi_elec_integral_alpha_tmp + !$OMP END CRITICAL + !$OMP CRITICAL + ao_bi_elec_integral_beta += ao_bi_elec_integral_beta_tmp + !$OMP END CRITICAL + deallocate(keys,values,ao_bi_elec_integral_alpha_tmp,ao_bi_elec_integral_beta_tmp) !$OMP END PARALLEL else PROVIDE ao_bielec_integrals_in_map @@ -180,16 +195,18 @@ END_PROVIDER integer(key_kind), allocatable :: keys(:) double precision, allocatable :: values(:) - ao_bi_elec_integral_alpha = 0.d0 - ao_bi_elec_integral_beta = 0.d0 !$OMP PARALLEL DEFAULT(NONE) & - !$OMP PRIVATE(i,j,l,k1,k,integral,ii,jj,kk,ll,i8,keys,values,n_elements_max,n_elements)& - !$OMP SHARED(ao_num,HF_density_matrix_ao_alpha,HF_density_matrix_ao_beta,& - !$OMP ao_integrals_map) & - !$OMP REDUCTION(+:ao_bi_elec_integral_alpha,ao_bi_elec_integral_beta) + !$OMP PRIVATE(i,j,l,k1,k,integral,ii,jj,kk,ll,i8,keys,values,n_elements_max, & + !$OMP n_elements,ao_bi_elec_integral_alpha_tmp,ao_bi_elec_integral_beta_tmp)& + !$OMP SHARED(ao_num,ao_num_align,HF_density_matrix_ao_alpha,HF_density_matrix_ao_beta,& + !$OMP ao_integrals_map, ao_bi_elec_integral_alpha, ao_bi_elec_integral_beta) call get_cache_map_n_elements_max(ao_integrals_map,n_elements_max) allocate(keys(n_elements_max), values(n_elements_max)) + allocate(ao_bi_elec_integral_alpha_tmp(ao_num_align,ao_num), & + ao_bi_elec_integral_beta_tmp(ao_num_align,ao_num)) + ao_bi_elec_integral_alpha_tmp = 0.d0 + ao_bi_elec_integral_beta_tmp = 0.d0 !$OMP DO SCHEDULE(dynamic) do i8=0_8,ao_integrals_map%map_size @@ -207,16 +224,22 @@ END_PROVIDER k = kk(k2) l = ll(k2) integral = (HF_density_matrix_ao_alpha(k,l)+HF_density_matrix_ao_beta(k,l)) * values(k1) - ao_bi_elec_integral_alpha(i,j) += integral - ao_bi_elec_integral_beta (i,j) += integral + ao_bi_elec_integral_alpha_tmp(i,j) += integral + ao_bi_elec_integral_beta_tmp (i,j) += integral integral = values(k1) - ao_bi_elec_integral_alpha(l,j) -= HF_density_matrix_ao_alpha(k,i) * integral - ao_bi_elec_integral_beta (l,j) -= HF_density_matrix_ao_beta (k,i) * integral + ao_bi_elec_integral_alpha_tmp(l,j) -= HF_density_matrix_ao_alpha(k,i) * integral + ao_bi_elec_integral_beta_tmp (l,j) -= HF_density_matrix_ao_beta (k,i) * integral enddo enddo enddo - !$OMP END DO - deallocate(keys,values) + !$OMP END DO NOWAIT + !$OMP CRITICAL + ao_bi_elec_integral_alpha += ao_bi_elec_integral_alpha_tmp + !$OMP END CRITICAL + !$OMP CRITICAL + ao_bi_elec_integral_beta += ao_bi_elec_integral_beta_tmp + !$OMP END CRITICAL + deallocate(keys,values,ao_bi_elec_integral_alpha_tmp,ao_bi_elec_integral_beta_tmp) !$OMP END PARALLEL endif diff --git a/plugins/Hartree_Fock/README.rst b/plugins/Hartree_Fock/README.rst index 345285ec..ffe80c75 100644 --- a/plugins/Hartree_Fock/README.rst +++ b/plugins/Hartree_Fock/README.rst @@ -66,11 +66,11 @@ Documentation Alpha Fock matrix in AO basis set -`fock_matrix_alpha_mo `_ +`fock_matrix_alpha_mo `_ Fock matrix on the MO basis -`fock_matrix_ao `_ +`fock_matrix_ao `_ Fock matrix in AO basis set @@ -78,7 +78,7 @@ Documentation Alpha Fock matrix in AO basis set -`fock_matrix_beta_mo `_ +`fock_matrix_beta_mo `_ Fock matrix on the MO basis @@ -114,7 +114,7 @@ Documentation .br -`fock_mo_to_ao `_ +`fock_mo_to_ao `_ Undocumented @@ -134,7 +134,7 @@ Documentation S^-1 Beta density matrix in the AO basis x S^-1 -`hf_energy `_ +`hf_energy `_ Hartree-Fock energy diff --git a/plugins/Hartree_Fock/damping_SCF.irp.f b/plugins/Hartree_Fock/damping_SCF.irp.f index d55bc8b8..d7d9c2bf 100644 --- a/plugins/Hartree_Fock/damping_SCF.irp.f +++ b/plugins/Hartree_Fock/damping_SCF.irp.f @@ -30,9 +30,12 @@ subroutine damping_SCF call write_time(output_hartree_fock) - write(output_hartree_fock,'(A4,X,A16, X, A16, X, A16, X, A4 )'), '====','================','================','================', '====' - write(output_hartree_fock,'(A4,X,A16, X, A16, X, A16, X, A4 )'), ' N ', 'Energy ', 'Energy diff ', 'Density diff ', 'Save' - write(output_hartree_fock,'(A4,X,A16, X, A16, X, A16, X, A4 )'), '====','================','================','================', '====' + write(output_hartree_fock,'(A4,X,A16, X, A16, X, A16, X, A4 )'), & + '====','================','================','================', '====' + write(output_hartree_fock,'(A4,X,A16, X, A16, X, A16, X, A4 )'), & + ' N ', 'Energy ', 'Energy diff ', 'Density diff ', 'Save' + write(output_hartree_fock,'(A4,X,A16, X, A16, X, A16, X, A4 )'), & + '====','================','================','================', '====' E = HF_energy + 1.d0 E_min = HF_energy diff --git a/plugins/Hartree_Fock/tree_dependency.png b/plugins/Hartree_Fock/tree_dependency.png index cb1d9738..410232bd 100644 Binary files a/plugins/Hartree_Fock/tree_dependency.png and b/plugins/Hartree_Fock/tree_dependency.png differ diff --git a/plugins/MRCC_Utils/README.rst b/plugins/MRCC_Utils/README.rst index 80622496..62eba2d1 100644 --- a/plugins/MRCC_Utils/README.rst +++ b/plugins/MRCC_Utils/README.rst @@ -258,11 +258,7 @@ Documentation N_states lowest eigenvalues of the dressed CI matrix -`create_minilist `_ - Undocumented - - -`davidson_diag_hjj_mrcc `_ +`davidson_diag_hjj_mrcc `_ Davidson diagonalization with specific diagonal elements of the H matrix .br H_jj : specific diagonal H matrix elements to diagonalize de Davidson @@ -283,7 +279,7 @@ Documentation Initial guess vectors are not necessarily orthonormal -`davidson_diag_mrcc `_ +`davidson_diag_mrcc `_ Davidson diagonalization. .br dets_in : bitmasks corresponding to determinants @@ -374,7 +370,7 @@ Documentation Find A.C = B -`find_triples_and_quadruples `_ +`find_triples_and_quadruples `_ Undocumented @@ -435,26 +431,18 @@ Documentation Undocumented -`h_apply_mrcc `_ +`h_apply_mrcc `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_mrcc_diexc `_ - Undocumented - - -`h_apply_mrcc_diexcorg `_ +`h_apply_mrcc_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_mrcc_diexcp `_ - Undocumented - - -`h_apply_mrcc_monoexc `_ +`h_apply_mrcc_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. @@ -464,15 +452,7 @@ Documentation Dressed H with Delta_ij -`h_u_0_mrcc `_ - Computes v_0 = H|u_0> - .br - n : number of determinants - .br - H_jj : array of - - -`h_u_0_mrcc_org `_ +`h_u_0_mrcc `_ Computes v_0 = H|u_0> .br n : number of determinants @@ -777,11 +757,11 @@ Documentation n! -`mrcc_dress `_ +`mrcc_dress `_ Undocumented -`mrcc_dress_simple `_ +`mrcc_dress_simple `_ Undocumented @@ -875,7 +855,7 @@ Documentation Current status for displaying progress bars. Global variable. -`psi_ref_lock `_ +`psi_ref_lock `_ Locks on ref determinants to fill delta_ij diff --git a/plugins/MRCC_Utils/tree_dependency.png b/plugins/MRCC_Utils/tree_dependency.png index 500e5d43..cd3d2f4b 100644 Binary files a/plugins/MRCC_Utils/tree_dependency.png and b/plugins/MRCC_Utils/tree_dependency.png differ diff --git a/plugins/Perturbation/README.rst b/plugins/Perturbation/README.rst index aa6ebf54..507e843c 100644 --- a/plugins/Perturbation/README.rst +++ b/plugins/Perturbation/README.rst @@ -112,42 +112,42 @@ Documentation routine. -`perturb_buffer_by_mono_dipole_moment_z `_ +`perturb_buffer_by_mono_dipole_moment_z `_ Applly pertubration ``dipole_moment_z`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_by_mono_epstein_nesbet `_ +`perturb_buffer_by_mono_epstein_nesbet `_ Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_by_mono_epstein_nesbet_2x2 `_ +`perturb_buffer_by_mono_epstein_nesbet_2x2 `_ Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_by_mono_epstein_nesbet_sc2 `_ +`perturb_buffer_by_mono_epstein_nesbet_sc2 `_ Applly pertubration ``epstein_nesbet_sc2`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_by_mono_epstein_nesbet_sc2_no_projected `_ +`perturb_buffer_by_mono_epstein_nesbet_sc2_no_projected `_ Applly pertubration ``epstein_nesbet_sc2_no_projected`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_by_mono_epstein_nesbet_sc2_projected `_ +`perturb_buffer_by_mono_epstein_nesbet_sc2_projected `_ Applly pertubration ``epstein_nesbet_sc2_projected`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_by_mono_h_core `_ +`perturb_buffer_by_mono_h_core `_ Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_by_mono_moller_plesset `_ +`perturb_buffer_by_mono_moller_plesset `_ Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine. @@ -157,42 +157,42 @@ Documentation routine. -`perturb_buffer_dipole_moment_z `_ +`perturb_buffer_dipole_moment_z `_ Applly pertubration ``dipole_moment_z`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_epstein_nesbet `_ +`perturb_buffer_epstein_nesbet `_ Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_epstein_nesbet_2x2 `_ +`perturb_buffer_epstein_nesbet_2x2 `_ Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_epstein_nesbet_sc2 `_ +`perturb_buffer_epstein_nesbet_sc2 `_ Applly pertubration ``epstein_nesbet_sc2`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_epstein_nesbet_sc2_no_projected `_ +`perturb_buffer_epstein_nesbet_sc2_no_projected `_ Applly pertubration ``epstein_nesbet_sc2_no_projected`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_epstein_nesbet_sc2_projected `_ +`perturb_buffer_epstein_nesbet_sc2_projected `_ Applly pertubration ``epstein_nesbet_sc2_projected`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_h_core `_ +`perturb_buffer_h_core `_ Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_moller_plesset `_ +`perturb_buffer_moller_plesset `_ Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine. diff --git a/plugins/Perturbation/tree_dependency.png b/plugins/Perturbation/tree_dependency.png index dac64544..4b13b985 100644 Binary files a/plugins/Perturbation/tree_dependency.png and b/plugins/Perturbation/tree_dependency.png differ diff --git a/plugins/Properties/tree_dependency.png b/plugins/Properties/tree_dependency.png index 1ba8d487..6a6c00ca 100644 Binary files a/plugins/Properties/tree_dependency.png and b/plugins/Properties/tree_dependency.png differ diff --git a/plugins/Psiref_CAS/tree_dependency.png b/plugins/Psiref_CAS/tree_dependency.png index 1a922bdc..8c7c26e6 100644 Binary files a/plugins/Psiref_CAS/tree_dependency.png and b/plugins/Psiref_CAS/tree_dependency.png differ diff --git a/plugins/Psiref_Utils/tree_dependency.png b/plugins/Psiref_Utils/tree_dependency.png index 20482ad2..a2c21ac9 100644 Binary files a/plugins/Psiref_Utils/tree_dependency.png and b/plugins/Psiref_Utils/tree_dependency.png differ diff --git a/plugins/QmcChem/README.rst b/plugins/QmcChem/README.rst index 0c5e452f..9724e4fb 100644 --- a/plugins/QmcChem/README.rst +++ b/plugins/QmcChem/README.rst @@ -43,3 +43,44 @@ Needed Modules * `Determinants `_ +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Determinants `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`ao_pseudo_grid `_ + Grid points for f(|r-r_A|) = \int Y_{lm}^{C} (|r-r_C|, \Omega_C) \chi_i^{A} (r-r_A) d\Omega_C + .br + + + +`mo_pseudo_grid `_ + Grid points for f(|r-r_A|) = \int Y_{lm}^{C} (|r-r_C|, \Omega_C) \phi_i^{A} (r-r_A) d\Omega_C + .br + + + +`save_for_qmc `_ + Undocumented + + +`test_pseudo_grid_ao `_ + Undocumented + + +`write_pseudopotential `_ + Write the pseudo_potential into the EZFIO file + diff --git a/plugins/Selectors_full/tree_dependency.png b/plugins/Selectors_full/tree_dependency.png index f49b2e9a..53d48336 100644 Binary files a/plugins/Selectors_full/tree_dependency.png and b/plugins/Selectors_full/tree_dependency.png differ diff --git a/plugins/SingleRefMethod/README.rst b/plugins/SingleRefMethod/README.rst index 1295f24f..19e47d71 100644 --- a/plugins/SingleRefMethod/README.rst +++ b/plugins/SingleRefMethod/README.rst @@ -43,3 +43,41 @@ Needed Modules * `Bitmask `_ +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Bitmask `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`n_det_generators `_ + For Single reference wave functions, the number of generators is 1 : the + Hartree-Fock determinant + + +`psi_coef_generators `_ + For Single reference wave functions, the generator is the + Hartree-Fock determinant + + +`psi_det_generators `_ + For Single reference wave functions, the generator is the + Hartree-Fock determinant + + +`select_max `_ + Memo to skip useless selectors + + +`size_select_max `_ + Size of select_max + diff --git a/plugins/SingleRefMethod/tree_dependency.png b/plugins/SingleRefMethod/tree_dependency.png index 2b7f777f..aea802f4 100644 Binary files a/plugins/SingleRefMethod/tree_dependency.png and b/plugins/SingleRefMethod/tree_dependency.png differ diff --git a/scripts/get_basis.sh b/scripts/get_basis.sh index ec07aa6d..1e969d5c 100755 --- a/scripts/get_basis.sh +++ b/scripts/get_basis.sh @@ -8,6 +8,8 @@ # Prints in stdout the name of a temporary file containing the basis set. # + + if [[ -z ${QP_ROOT} ]] then print "The QP_ROOT environment variable is not set." @@ -15,6 +17,7 @@ then exit -1 fi + export EMSL_API_ROOT="${QP_ROOT}"/install/emsl tmpfile="$1" diff --git a/scripts/module/qp_install_module.py b/scripts/module/qp_install_module.py index 99674e14..2dddfcb7 100755 --- a/scripts/module/qp_install_module.py +++ b/scripts/module/qp_install_module.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- """ Usage: - qp_install_module.py create -n [...] + qp_install_module.py create -n [...] qp_install_module.py download -n [...] qp_install_module.py install ... qp_install_module.py list (--installed | --available-local) @@ -10,7 +10,7 @@ Usage: Options: - list: List all the module available + list: List all the modules available create: Create a new module """ @@ -25,8 +25,8 @@ try: from qp_update_readme import D_KEY from qp_path import QP_SRC, QP_PLUGINS, QP_ROOT except ImportError: - print "Please check if you have sourced the .quantum_package.rc" - print "(`source .quantum_package.rc`)" + print "Please check if you have sourced the ${QP_ROOT}/quantum_package.rc" + print "(`source ${QP_ROOT}/quantum_package.rc`)" print sys.exit(1) @@ -39,7 +39,7 @@ def save_new_module(path, l_child): try: os.makedirs(path) except OSError: - print "The module ({0}) already exist...".format(path) + print "The module ({0}) already exists...".format(path) sys.exit(1) with open(os.path.join(path, "NEEDED_CHILDREN_MODULES"), "w") as f: @@ -78,39 +78,41 @@ if __name__ == '__main__': elif arguments["create"]: m_instance = ModuleHandler([QP_SRC]) - l_children = arguments[""] + l_children = arguments[""] name = arguments[""][0] path = os.path.join(QP_PLUGINS, name) - print "You will create the module:" - print path + print "Created module:" + print path, '\n' for children in l_children: if children not in m_instance.dict_descendant: - print "This module ({0}) is not a valide module.".format(children) - print "Run `list` flag for the list of module available" - print "Maybe you need to install some module first" + print "This module ({0}) is not a valid module.".format(children) + print "Run `list` for the list of available modules." + print "Maybe you need to install some other module first." print "Aborting..." sys.exit(1) - print "You ask for this submodule:" - print l_children + print "Needed module:" + print l_children, '\n' - print "You can use all the routine in this module" - print l_children + m_instance.l_descendant_unique(l_children) + print "This corresponds to using the following modules:" + print l_children + m_instance.l_descendant_unique(l_children), '\n' - print "This can be reduce to:" + print "Which is reduced to:" l_child_reduce = m_instance.l_reduce_tree(l_children) - print l_child_reduce + print l_child_reduce, '\n' + print "Installation", save_new_module(path, l_child_reduce) print " [ OK ]" - print "You can now install it normaly. Type:" - print "` {0} install {1} `".format(os.path.basename(__file__), name) - print "And don't forgot to add this to the git if you want" + print "Your module is created in the `plugins` directory." + print "You need to create some `.irp.f` to be able to install it." +# print "` {0} install {1} `".format(os.path.basename(__file__), name) + print "" elif arguments["download"]: pass @@ -203,4 +205,5 @@ if __name__ == '__main__': try: os.unlink(os.path.join(QP_SRC, module)) except OSError: - print "%s is a core module which can not be renmoved" % module + print "%s is a core module which can't be removed" % module + diff --git a/scripts/save_current_mos.sh b/scripts/save_current_mos.sh index 4ad81e93..f9d7806f 100755 --- a/scripts/save_current_mos.sh +++ b/scripts/save_current_mos.sh @@ -4,6 +4,7 @@ # directory, where xxx is the corresponding mo_label. # Wed Apr 2 14:35:15 CEST 2014 + if [[ -z ${QP_ROOT} ]] then print "The QP_ROOT environment variable is not set." @@ -11,40 +12,40 @@ then exit -1 fi -EZFIO=$1 +EZFIO="$1" -if [[ -z ${EZFIO} ]] +if [[ -z "${EZFIO}" ]] then echo "Error in $0" exit 1 fi -if [[ ! -f ${EZFIO}/mo_basis/mo_label ]] +if [[ ! -f "${EZFIO}/mo_basis/mo_label" ]] then LABEL='no_label' else - LABEL=$(head -1 ${EZFIO}/mo_basis/mo_label) + LABEL=$(head -1 "${EZFIO}/mo_basis/mo_label") fi DESTINATION="save/mo_basis/${LABEL}" -cd ${EZFIO} +cd "${EZFIO}" if [[ ! -d save/mo_basis ]] then mkdir -p save/mo_basis fi -BACKUP=${DESTINATION}.old -if [[ -d ${BACKUP} ]] +BACKUP="${DESTINATION}.old" +if [[ -d "${BACKUP}" ]] then - rm -rf ${BACKUP} + rm -rf "${BACKUP}" fi -if [[ -d ${DESTINATION} ]] +if [[ -d "${DESTINATION}" ]] then - mv ${DESTINATION} ${BACKUP} + mv "${DESTINATION}" "${BACKUP}" fi -cp -r mo_basis ${DESTINATION} +cp -r mo_basis "${DESTINATION}" diff --git a/src/AO_Basis/tree_dependency.png b/src/AO_Basis/tree_dependency.png index acaeb7af..5d3366ea 100644 Binary files a/src/AO_Basis/tree_dependency.png and b/src/AO_Basis/tree_dependency.png differ diff --git a/src/Bitmask/tree_dependency.png b/src/Bitmask/tree_dependency.png index 24ce3397..2308df3d 100644 Binary files a/src/Bitmask/tree_dependency.png and b/src/Bitmask/tree_dependency.png differ diff --git a/src/Determinants/.gitignore b/src/Determinants/.gitignore deleted file mode 100644 index b11c7f14..00000000 --- a/src/Determinants/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -# Automatically created by $QP_ROOT/scripts/module/module_handler.py -.ninja_deps -.ninja_log -AO_Basis -Bitmask -Electrons -Ezfio_files -IRPF90_man -IRPF90_temp -Integrals_Bielec -Integrals_Monoelec -MO_Basis -Makefile -Makefile.depend -Nuclei -Pseudo -Utils -ezfio_interface.irp.f -guess_doublet -guess_singlet -guess_triplet -irpf90.make -irpf90_entities -program_initial_determinants -save_natorb -tags -truncate_wf \ No newline at end of file diff --git a/src/Determinants/H_apply.template.f b/src/Determinants/H_apply.template.f index 6bc6ec99..047cd3f1 100644 --- a/src/Determinants/H_apply.template.f +++ b/src/Determinants/H_apply.template.f @@ -102,15 +102,38 @@ subroutine $subroutine_diexcP(key_in, fs1, fh1, particl_1, fs2, fh2, particl_2, integer :: n_minilist, n_alpha, n_beta, deg(2), i, ni $declarations - p1_mask(:,:) = 0 - p2_mask(:,:) = 0 + p1_mask(:,:) = 0_bit_kind + p2_mask(:,:) = 0_bit_kind p1_mask(ishft(fh1,-bit_kind_shift) + 1, fs1) = ishft(1,iand(fh1-1,bit_kind_size-1)) p2_mask(ishft(fh2,-bit_kind_shift) + 1, fs2) = ishft(1,iand(fh2-1,bit_kind_size-1)) key_mask(:,:) = key_in(:,:) + key_mask(ishft(fh1,-bit_kind_shift) + 1, fs1) -= ishft(1,iand(fh1-1,bit_kind_size-1)) key_mask(ishft(fh2,-bit_kind_shift) + 1, fs2) -= ishft(1,iand(fh2-1,bit_kind_size-1)) +! do i=1,N_int +! n_alpha = n_alpha + popcnt(key_mask(i, 1)) +! n_beta = n_beta + popcnt(key_mask(i, 2)) +! end do +! +! do i=1, N_det +! deg(1) = n_alpha +! deg(2) = n_beta +! +! do ni = 1, N_int +! ! deg(1) = deg(1) - popcnt(iand(key_mask(ni, 1), psi_non_ref(ni, 1, i))) +! ! deg(2) = deg(2) - popcnt(iand(key_mask(ni, 2), psi_non_ref(ni, 2, i))) +! end do +! +! +! if(deg(1) + deg(2) <= 2) then +! ! ndet_out = ndet_out + 1 +! ! idx(ndet_out) = i +! end if +! end do +>>>>>>> 9107aee5ac0e251a0c91d82ef9c686fcef599fb5 + call $subroutine_diexcOrg(key_in, key_mask, p1_mask, particl_1, p2_mask, particl_2, i_generator, iproc_in $parameters ) end subroutine @@ -412,7 +435,7 @@ subroutine $subroutine_monoexc(key_in, hole_1,particl_1,i_generator,iproc_in $pa logical :: check_double_excitation - key_mask(:,:) = 0_8 + key_mask(:,:) = 0_bit_kind iproc = iproc_in diff --git a/src/Determinants/README.rst b/src/Determinants/README.rst index 2c2759ae..62b035fc 100644 --- a/src/Determinants/README.rst +++ b/src/Determinants/README.rst @@ -54,7 +54,11 @@ Documentation .. by the `update_README.py` script. +`a_operator `_ Needed for diag_H_mat_elem + + +`abs_psi_coef_max `_ Max and min values of the coefficients diff --git a/src/Determinants/slater_rules.irp.f b/src/Determinants/slater_rules.irp.f index 08c65ddf..72615089 100644 --- a/src/Determinants/slater_rules.irp.f +++ b/src/Determinants/slater_rules.irp.f @@ -962,7 +962,7 @@ subroutine get_excitation_degree_vector(key1,key2,degree,Nint,sze,idx) integer, intent(out) :: degree(sze) integer, intent(out) :: idx(0:sze) - integer :: i,l,d + integer :: i,l,d,m ASSERT (Nint > 0) ASSERT (sze > 0) @@ -1025,9 +1025,9 @@ subroutine get_excitation_degree_vector(key1,key2,degree,Nint,sze,idx) do i=1,sze d = 0 !DEC$ LOOP COUNT MIN(4) - do l=1,Nint - d = d + popcnt(xor( key1(l,1,i), key2(l,1))) & - + popcnt(xor( key1(l,2,i), key2(l,2))) + do m=1,Nint + d = d + popcnt(xor( key1(m,1,i), key2(m,1))) & + + popcnt(xor( key1(m,2,i), key2(m,2))) enddo if (d > 4) then cycle diff --git a/src/Determinants/tree_dependency.png b/src/Determinants/tree_dependency.png index f9eb10c3..53c75ffc 100644 Binary files a/src/Determinants/tree_dependency.png and b/src/Determinants/tree_dependency.png differ diff --git a/src/Electrons/tree_dependency.png b/src/Electrons/tree_dependency.png index b90a1f83..3f82c435 100644 Binary files a/src/Electrons/tree_dependency.png and b/src/Electrons/tree_dependency.png differ diff --git a/src/Ezfio_files/README.rst b/src/Ezfio_files/README.rst index a612dcc7..f361c168 100644 --- a/src/Ezfio_files/README.rst +++ b/src/Ezfio_files/README.rst @@ -203,8 +203,8 @@ Documentation Output file for Bitmask -`output_cas_sd `_ - Output file for CAS_SD +`output_cisd `_ + Output file for CISD `output_cpu_time_0 `_ @@ -227,42 +227,42 @@ Documentation Output file for Full_CI -`output_generators_cas `_ - Output file for Generators_CAS - - -`output_generators_full `_ +`output_generators_full `_ Output file for Generators_full -`output_hartree_fock `_ +`output_hartree_fock `_ Output file for Hartree_Fock -`output_integrals_bielec `_ +`output_integrals_bielec `_ Output file for Integrals_Bielec -`output_integrals_monoelec `_ +`output_integrals_monoelec `_ Output file for Integrals_Monoelec -`output_mo_basis `_ +`output_mo_basis `_ Output file for MO_Basis -`output_moguess `_ +`output_moguess `_ Output file for MOGuess -`output_mrcc_cassd `_ +`output_mrcc_cassd `_ Output file for MRCC_CASSD -`output_mrcc_utils `_ +`output_mrcc_utils `_ Output file for MRCC_Utils +`output_myhartreefock `_ + Output file for MyHartreeFock + + `output_nuclei `_ Output file for Nuclei @@ -291,7 +291,11 @@ Documentation Output file for Selectors_full -`output_utils `_ +`output_singlerefmethod `_ + Output file for SingleRefMethod + + +`output_utils `_ Output file for Utils diff --git a/src/Ezfio_files/tree_dependency.png b/src/Ezfio_files/tree_dependency.png index 48f53991..6df8c015 100644 Binary files a/src/Ezfio_files/tree_dependency.png and b/src/Ezfio_files/tree_dependency.png differ diff --git a/src/Integrals_Bielec/read_write.irp.f b/src/Integrals_Bielec/read_write.irp.f index 6319641b..5b2b7f3e 100644 --- a/src/Integrals_Bielec/read_write.irp.f +++ b/src/Integrals_Bielec/read_write.irp.f @@ -20,7 +20,13 @@ implicit none read_ao_integrals = .False. write_ao_integrals = .False. - else if (disk_access_mo_integrals.EQ.'Read') then + else + print *, 'bielec_integrals/disk_access_ao_integrals has a wrong type' + stop 1 + + endif + + if (disk_access_mo_integrals.EQ.'Read') then read_mo_integrals = .True. write_mo_integrals = .False. @@ -33,8 +39,8 @@ implicit none write_mo_integrals = .False. else - print *, 'bielec_integrals/disk_acces not of a the good type' - stop "1" + print *, 'bielec_integrals/disk_access_mo_integrals has a wrong type' + stop 1 endif diff --git a/src/Integrals_Bielec/tree_dependency.png b/src/Integrals_Bielec/tree_dependency.png index 4161fd0a..9c58a4ae 100644 Binary files a/src/Integrals_Bielec/tree_dependency.png and b/src/Integrals_Bielec/tree_dependency.png differ diff --git a/src/Integrals_Monoelec/tree_dependency.png b/src/Integrals_Monoelec/tree_dependency.png index f56c1e77..276dff5d 100644 Binary files a/src/Integrals_Monoelec/tree_dependency.png and b/src/Integrals_Monoelec/tree_dependency.png differ diff --git a/src/MOGuess/tree_dependency.png b/src/MOGuess/tree_dependency.png index f33b4bb3..13728161 100644 Binary files a/src/MOGuess/tree_dependency.png and b/src/MOGuess/tree_dependency.png differ diff --git a/src/MO_Basis/tree_dependency.png b/src/MO_Basis/tree_dependency.png index c8086369..4ce1ecce 100644 Binary files a/src/MO_Basis/tree_dependency.png and b/src/MO_Basis/tree_dependency.png differ diff --git a/src/Nuclei/tree_dependency.png b/src/Nuclei/tree_dependency.png index 72cfaeee..e3a17492 100644 Binary files a/src/Nuclei/tree_dependency.png and b/src/Nuclei/tree_dependency.png differ diff --git a/src/Pseudo/tree_dependency.png b/src/Pseudo/tree_dependency.png index 5a9af5ae..55656d8e 100644 Binary files a/src/Pseudo/tree_dependency.png and b/src/Pseudo/tree_dependency.png differ diff --git a/src/Utils/tree_dependency.png b/src/Utils/tree_dependency.png index 38b04785..5636a6e3 100644 Binary files a/src/Utils/tree_dependency.png and b/src/Utils/tree_dependency.png differ