diff --git a/configure b/configure index 1f55de58..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: @@ -71,7 +72,7 @@ from collections import namedtuple Info = namedtuple("Info", ["url", "description", "default_path"]) -path_github = {"head": "http://github.com/", "tail": "archive/master.tar.gz"} +path_github = {"head": "http://github.com", "tail": "archive/master.tar.gz"} ocaml = Info( url='http://raw.github.com/ocaml/opam/master/shell/opam_installer.sh', @@ -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. @@ -180,6 +181,8 @@ def check_output(*popenargs, **kwargs): cmd = popenargs[0] error = subprocess.CalledProcessError(retcode, cmd) error.output = output +# print output +# print unused_err raise error return output @@ -187,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(): @@ -203,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": @@ -224,7 +227,7 @@ def checking(d_dependency): return a - except subprocess.CalledProcessError: + except (OSError,subprocess.CalledProcessError): default_path = d_info[binary].default_path if os.path.exists(default_path): return default_path @@ -252,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 = [] @@ -325,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())) @@ -341,9 +344,9 @@ _|_ | | _> |_ (_| | | (_| |_ | (_) | | extension = splitext(url)[1] path_archive = "Downloads/{0}{1}".format("ninja", extension) - l_cmd = ["cd install &&", - "wget {0} -O {1} -o /dev/null &&".format(url, path_archive), - "./scripts/install_ninja.sh 2> /dev/null &&", "cd -"] + l_cmd = ["set -x ;", "cd install &&", + "wget {0} -O {1} &&".format(url, path_archive), + "./scripts/install_ninja.sh &&", "cd -"] try: check_output(" ".join(l_cmd), shell=True) @@ -451,7 +454,7 @@ def create_ninja_and_rc(l_installed): 'export IRPF90={0}'.format(path_irpf90), 'export NINJA={0}'.format(path_ninja), 'export QP_PYTHON={0}'.format(":".join(l_python)), "", - 'export PYTHONPATH="${QP_PYTHON}":"${PYTHONPATH}"', + 'export PYTHONPATH="${QP_EZFIO}":"${QP_PYTHON}":"${PYTHONPATH}"', 'export PATH="${QP_PYTHON}":"${QP_ROOT}"/bin:"${QP_ROOT}"/ocaml:"${PATH}"', 'export LD_LIBRARY_PATH="${QP_ROOT}"/lib:"${LD_LIBRARY_PATH}"', 'export LIBRARY_PATH="${QP_ROOT}"/lib:"${LIBRARY_PATH}"', "", @@ -484,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) @@ -496,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/qp_create_ezfio_from_xyz.ml b/ocaml/qp_create_ezfio_from_xyz.ml index 538c5f63..544e6e09 100644 --- a/ocaml/qp_create_ezfio_from_xyz.ml +++ b/ocaml/qp_create_ezfio_from_xyz.ml @@ -14,7 +14,7 @@ let spec = +> flag "m" (optional_with_default 1 int) ~doc:"int Spin multiplicity (2S+1) of the molecule. Default is 1." +> flag "p" no_arg - ~doc:"Using pseudopotentials" + ~doc:" Using pseudopotentials" +> anon ("xyz_file" %: string) ;; diff --git a/plugins/CAS_SD/README.rst b/plugins/CAS_SD/README.rst index 63836195..258410a1 100644 --- a/plugins/CAS_SD/README.rst +++ b/plugins/CAS_SD/README.rst @@ -96,3 +96,92 @@ Needed Modules * `Selectors_full `_ * `Generators_CAS `_ +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Perturbation `_ +* `Selectors_full `_ +* `Generators_CAS `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`full_ci `_ + Undocumented + + +`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 `_ + 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_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 `_ + 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 `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cas_sd_pt2_monoexc `_ + 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 `_ + 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 `_ + 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_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 `_ + 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 `_ + 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_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + diff --git a/plugins/CAS_SD/tree_dependency.png b/plugins/CAS_SD/tree_dependency.png index d3d98e3c..185c2b27 100644 Binary files a/plugins/CAS_SD/tree_dependency.png and b/plugins/CAS_SD/tree_dependency.png differ 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/CIS/tree_dependency.png b/plugins/CIS/tree_dependency.png index 36856095..d9ee1876 100644 Binary files a/plugins/CIS/tree_dependency.png and b/plugins/CIS/tree_dependency.png differ diff --git a/plugins/CISD/.gitignore b/plugins/CISD/.gitignore index 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..a17ce64e 100644 --- a/plugins/CISD/README.rst +++ b/plugins/CISD/README.rst @@ -42,3 +42,36 @@ 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. + + +`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 63daa410..fcf48831 100644 Binary files a/plugins/CISD/tree_dependency.png and b/plugins/CISD/tree_dependency.png differ diff --git a/plugins/CISD_selected/.gitignore b/plugins/CISD_selected/.gitignore index e9803984..82a3a233 100644 --- a/plugins/CISD_selected/.gitignore +++ b/plugins/CISD_selected/.gitignore @@ -23,7 +23,6 @@ Pseudo Selectors_full SingleRefMethod Utils -cisd_selection ezfio_interface.irp.f irpf90.make irpf90_entities 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..768e4586 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_energy(CI_energy) + call ezfio_set_cisd_energy_pt2(CI_energy+pt2) end diff --git a/plugins/CISD_selected/tree_dependency.png b/plugins/CISD_selected/tree_dependency.png index 9e582bae..4d637043 100644 Binary files a/plugins/CISD_selected/tree_dependency.png and b/plugins/CISD_selected/tree_dependency.png differ 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/README.rst b/plugins/Full_CI/README.rst index 7465089f..bc2307cd 100644 --- a/plugins/Full_CI/README.rst +++ b/plugins/Full_CI/README.rst @@ -4,164 +4,165 @@ Full_CI Module Performs a perturbatively selected Full-CI. -Documentation -============= - -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -`full_ci `_ - Undocumented - - -`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 `_ - 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 `_ - 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 `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_fci_mono_monoexc `_ - 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 `_ - 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 `_ - 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 `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_fci_no_skip_monoexc `_ - 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 `_ - 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 `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_fci_pt2_monoexc `_ - 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 `_ - 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 `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_pt2_mono_delta_rho_monoexc `_ - 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 `_ - 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 `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_pt2_mono_di_delta_rho_monoexc `_ - 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 `_ - 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 `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_select_mono_delta_rho_monoexc `_ - 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 `_ - 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 `_ - Generate all double excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`h_apply_select_mono_di_delta_rho_monoexc `_ - Generate all single excitations of key_in using the bit masks of holes and - particles. - Assume N_int is already provided. - - -`var_pt2_ratio_run `_ - Undocumented Needed Modules ============== - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + .. image:: tree_dependency.png -* `Perturbation `_ -* `Selectors_full `_ -* `Generators_full `_ +* `Perturbation `_ +* `Selectors_full `_ +* `Generators_full `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`full_ci `_ + Undocumented + + +`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 `_ + 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 `_ + 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 `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_fci_mono_monoexc `_ + 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 `_ + 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 `_ + 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 `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_fci_no_skip_monoexc `_ + 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 `_ + 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 `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_fci_pt2_monoexc `_ + 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 `_ + 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 `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_pt2_mono_delta_rho_monoexc `_ + 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 `_ + 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 `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_pt2_mono_di_delta_rho_monoexc `_ + 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 `_ + 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 `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_select_mono_delta_rho_monoexc `_ + 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 `_ + 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 `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_select_mono_di_delta_rho_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`var_pt2_ratio_run `_ + Undocumented diff --git a/plugins/Full_CI/tree_dependency.png b/plugins/Full_CI/tree_dependency.png index ad7dcd84..caedb2e0 100644 Binary files a/plugins/Full_CI/tree_dependency.png and b/plugins/Full_CI/tree_dependency.png differ diff --git a/plugins/Generators_CAS/README.rst b/plugins/Generators_CAS/README.rst index 9a361c8b..9d880b0d 100644 --- a/plugins/Generators_CAS/README.rst +++ b/plugins/Generators_CAS/README.rst @@ -49,3 +49,40 @@ 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. + + +`n_det_generators `_ + Number of generator detetrminants + + +`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 the select_max array + diff --git a/plugins/Generators_CAS/tree_dependency.png b/plugins/Generators_CAS/tree_dependency.png index 7f32349e..5bbc55d0 100644 Binary files a/plugins/Generators_CAS/tree_dependency.png and b/plugins/Generators_CAS/tree_dependency.png differ diff --git a/plugins/Generators_full/README.rst b/plugins/Generators_full/README.rst index dc6965e8..c30193a2 100644 --- a/plugins/Generators_full/README.rst +++ b/plugins/Generators_full/README.rst @@ -5,42 +5,10 @@ Generators_full Module All the determinants of the wave function are generators. In this way, the Full CI space is explored. -Documentation -============= - -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -`degree_max_generators `_ - Max degree of excitation (respect to HF) of the generators - - -`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 the select_max array - Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. .. image:: tree_dependency.png @@ -48,3 +16,46 @@ Needed Modules * `Determinants `_ * `Hartree_Fock `_ +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Determinants `_ +* `Hartree_Fock `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`degree_max_generators `_ + Max degree of excitation (respect to HF) of the generators + + +`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 the select_max array + diff --git a/plugins/Generators_full/tree_dependency.png b/plugins/Generators_full/tree_dependency.png index c2656d20..94ad6358 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/README.rst b/plugins/Hartree_Fock/README.rst index 28b3aec1..345285ec 100644 --- a/plugins/Hartree_Fock/README.rst +++ b/plugins/Hartree_Fock/README.rst @@ -7,9 +7,20 @@ From the 140 molecules of the G2 set, only LiO, ONa don't converge well. Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `Integrals_Bielec `_ +* `MOGuess `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `Integrals_Bielec `_ @@ -17,61 +28,61 @@ Needed Modules Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. -`ao_bi_elec_integral_alpha `_ + +`ao_bi_elec_integral_alpha `_ Alpha Fock matrix in AO basis set -`ao_bi_elec_integral_beta `_ +`ao_bi_elec_integral_beta `_ Alpha Fock matrix in AO basis set -`create_guess `_ +`create_guess `_ Create an MO guess if no MOs are present in the EZFIO directory -`damping_scf `_ +`damping_scf `_ Undocumented -`diagonal_fock_matrix_mo `_ +`diagonal_fock_matrix_mo `_ Diagonal Fock matrix in the MO basis -`diagonal_fock_matrix_mo_sum `_ +`diagonal_fock_matrix_mo_sum `_ diagonal element of the fock matrix calculated as the sum over all the interactions with all the electrons in the RHF determinant diagonal_Fock_matrix_mo_sum(i) = sum_{j=1, N_elec} 2 J_ij -K_ij -`eigenvectors_fock_matrix_mo `_ +`eigenvectors_fock_matrix_mo `_ Diagonal Fock matrix in the MO basis -`fock_matrix_alpha_ao `_ +`fock_matrix_alpha_ao `_ 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 -`fock_matrix_beta_ao `_ +`fock_matrix_beta_ao `_ Alpha Fock matrix in AO basis set -`fock_matrix_beta_mo `_ +`fock_matrix_beta_mo `_ Fock matrix on the MO basis -`fock_matrix_diag_mo `_ +`fock_matrix_diag_mo `_ Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is .br @@ -87,7 +98,7 @@ Documentation .br -`fock_matrix_mo `_ +`fock_matrix_mo `_ Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is .br @@ -103,53 +114,53 @@ Documentation .br -`fock_mo_to_ao `_ +`fock_mo_to_ao `_ Undocumented -`guess `_ +`guess `_ Undocumented -`hf_density_matrix_ao `_ +`hf_density_matrix_ao `_ S^-1 Density matrix in the AO basis S^-1 -`hf_density_matrix_ao_alpha `_ +`hf_density_matrix_ao_alpha `_ S^-1 x Alpha density matrix in the AO basis x S^-1 -`hf_density_matrix_ao_beta `_ +`hf_density_matrix_ao_beta `_ S^-1 Beta density matrix in the AO basis x S^-1 -`hf_energy `_ +`hf_energy `_ Hartree-Fock energy -`huckel_guess `_ +`huckel_guess `_ Build the MOs using the extended Huckel model -`mo_guess_type `_ +`mo_guess_type `_ Initial MO guess. Can be [ Huckel | HCore ] -`n_it_scf_max `_ +`n_it_scf_max `_ Maximum number of SCF iterations -`run `_ +`run `_ Run SCF calculation -`scf `_ +`scf `_ Produce `Hartree_Fock` MO orbital output: mo_basis.mo_tot_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ output: hartree_fock.energy optional: mo_basis.mo_coef -`thresh_scf `_ +`thresh_scf `_ Threshold on the convergence of the Hartree Fock energy diff --git a/plugins/Hartree_Fock/tree_dependency.png b/plugins/Hartree_Fock/tree_dependency.png index 8a43fb0d..cb1d9738 100644 Binary files a/plugins/Hartree_Fock/tree_dependency.png and b/plugins/Hartree_Fock/tree_dependency.png differ diff --git a/plugins/MRCC_CASSD/.gitignore b/plugins/MRCC_CASSD/.gitignore index de65845a..d81ca7b8 100644 --- a/plugins/MRCC_CASSD/.gitignore +++ b/plugins/MRCC_CASSD/.gitignore @@ -14,7 +14,7 @@ Integrals_Bielec Integrals_Monoelec MOGuess MO_Basis -MRCC_Utils_new +MRCC_Utils Makefile Makefile.depend Nuclei diff --git a/plugins/MRCC_CASSD/NEEDED_CHILDREN_MODULES b/plugins/MRCC_CASSD/NEEDED_CHILDREN_MODULES index 5ed6004b..a8404d62 100644 --- a/plugins/MRCC_CASSD/NEEDED_CHILDREN_MODULES +++ b/plugins/MRCC_CASSD/NEEDED_CHILDREN_MODULES @@ -1 +1 @@ -Perturbation Selectors_full Generators_full Psiref_CAS MRCC_Utils_new +Perturbation Selectors_full Generators_full Psiref_CAS MRCC_Utils diff --git a/plugins/MRCC_CASSD/README.rst b/plugins/MRCC_CASSD/README.rst index 3812e0b0..b2713b43 100644 --- a/plugins/MRCC_CASSD/README.rst +++ b/plugins/MRCC_CASSD/README.rst @@ -16,7 +16,7 @@ Needed Modules * `Selectors_full `_ * `Generators_full `_ * `Psiref_CAS `_ -* `MRCC_Utils_new `_ +* `MRCC_Utils `_ Documentation ============= @@ -31,3 +31,30 @@ Documentation `print_cas_coefs `_ Undocumented +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Perturbation `_ +* `Selectors_full `_ +* `Generators_full `_ +* `Psiref_CAS `_ +* `MRCC_Utils `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`mrcc `_ + Undocumented + + +`print_cas_coefs `_ + Undocumented + diff --git a/plugins/MRCC_Utils/README.rst b/plugins/MRCC_Utils/README.rst index 5c1b0844..62eba2d1 100644 --- a/plugins/MRCC_Utils/README.rst +++ b/plugins/MRCC_Utils/README.rst @@ -21,19 +21,19 @@ Documentation .. Do not edit this section. It was auto-generated from the .. by the `update_README.py` script. -`ci_eigenvectors_dressed `_ +`ci_eigenvectors_dressed `_ Eigenvectors/values of the CI matrix -`ci_eigenvectors_s2_dressed `_ +`ci_eigenvectors_s2_dressed `_ Eigenvectors/values of the CI matrix -`ci_electronic_energy_dressed `_ +`ci_electronic_energy_dressed `_ Eigenvectors/values of the CI matrix -`ci_energy_dressed `_ +`ci_energy_dressed `_ N_states lowest eigenvalues of the dressed CI matrix @@ -77,15 +77,15 @@ Documentation Initial guess vectors are not necessarily orthonormal -`delta_ii `_ +`delta_ii `_ Dressing matrix in N_det basis -`delta_ij `_ +`delta_ij `_ Dressing matrix in N_det basis -`diagonalize_ci_dressed `_ +`diagonalize_ci_dressed `_ Replace the coefficients of the CI states by the coefficients of the eigenstates of the CI matrix @@ -111,7 +111,7 @@ Documentation Assume N_int is already provided. -`h_matrix_dressed `_ +`h_matrix_dressed `_ Dressed H with Delta_ij @@ -123,11 +123,15 @@ Documentation H_jj : array of -`lambda_mrcc `_ +`lambda_mrcc `_ cm/ or perturbative 1/Delta_E(m) -`lambda_pert `_ +`lambda_mrcc_tmp `_ + Undocumented + + +`lambda_pert `_ cm/ or perturbative 1/Delta_E(m) @@ -143,6 +147,14 @@ Documentation Undocumented +`oscillations `_ + Undocumented + + +`pert_determinants `_ + Undocumented + + `psi_ref_lock `_ Locks on ref determinants to fill delta_ij @@ -151,6 +163,795 @@ Documentation Undocumented -`set_generators_bitmasks_as_holes_and_particles `_ +`set_generators_bitmasks_as_holes_and_particles `_ Undocumented +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Perturbation `_ +* `Selectors_full `_ +* `Generators_full `_ +* `Psiref_Utils `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`a_coef `_ + Undocumented + + +`abort_all `_ + If True, all the calculation is aborted + + +`abort_here `_ + If True, all the calculation is aborted + + +`add_poly `_ + Add two polynomials + D(t) =! D(t) +( B(t)+C(t)) + + +`add_poly_multiply `_ + Add a polynomial multiplied by a constant + D(t) =! D(t) +( cst * B(t)) + + +`align_double `_ + Compute 1st dimension such that it is aligned for vectorization. + + +`apply_rotation `_ + Apply the rotation found by find_rotation + + +`approx_dble `_ + Undocumented + + +`b_coef `_ + Undocumented + + +`binom `_ + Binomial coefficients + + +`binom_func `_ + .. math :: + .br + \frac{i!}{j!(i-j)!} + .br + + +`binom_transp `_ + Binomial coefficients + + +`catch_signal `_ + What to do on Ctrl-C. If two Ctrl-C are pressed within 1 sec, the calculation if aborted. + + +`ci_eigenvectors_dressed `_ + Eigenvectors/values of the CI matrix + + +`ci_eigenvectors_s2_dressed `_ + Eigenvectors/values of the CI matrix + + +`ci_electronic_energy_dressed `_ + Eigenvectors/values of the CI matrix + + +`ci_energy_dressed `_ + N_states lowest eigenvalues of the dressed CI matrix + + +`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 + .br + dets_in : bitmasks corresponding to determinants + .br + u_in : guess coefficients on the various states. Overwritten + on exit + .br + dim_in : leftmost dimension of u_in + .br + sze : Number of determinants + .br + N_st : Number of eigenstates + .br + iunit : Unit for the I/O + .br + Initial guess vectors are not necessarily orthonormal + + +`davidson_diag_mrcc `_ + Davidson diagonalization. + .br + dets_in : bitmasks corresponding to determinants + .br + u_in : guess coefficients on the various states. Overwritten + on exit + .br + dim_in : leftmost dimension of u_in + .br + sze : Number of determinants + .br + N_st : Number of eigenstates + .br + iunit : Unit number for the I/O + .br + Initial guess vectors are not necessarily orthonormal + + +`dble_fact `_ + Undocumented + + +`dble_fact_even `_ + n!! + + +`dble_fact_odd `_ + n!! + + +`dble_logfact `_ + n!! + + +`ddfact2 `_ + Undocumented + + +`delta_ii `_ + Dressing matrix in N_det basis + + +`delta_ij `_ + Dressing matrix in N_det basis + + +`diagonalize_ci_dressed `_ + Replace the coefficients of the CI states by the coefficients of the + eigenstates of the CI matrix + + +`dset_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`dset_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`dsort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`erf0 `_ + Undocumented + + +`f_integral `_ + function that calculates the following integral + \int_{\-infty}^{+\infty} x^n \exp(-p x^2) dx + + +`fact `_ + n! + + +`fact_inv `_ + 1/n! + + +`find_rotation `_ + Find A.C = B + + +`find_triples_and_quadruples `_ + Undocumented + + +`gammln `_ + Undocumented + + +`gammp `_ + Undocumented + + +`gaussian_product `_ + Gaussian product in 1D. + e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2} + + +`gaussian_product_x `_ + Gaussian product in 1D. + e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2} + + +`gcf `_ + Undocumented + + +`get_pseudo_inverse `_ + Find C = A^-1 + + +`give_explicit_poly_and_gaussian `_ + Transforms the product of + (x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta) + into + fact_k * [ sum (l_x = 0,i_order(1)) P_new(l_x,1) * (x-P_center(1))^l_x ] exp (- p (x-P_center(1))^2 ) + * [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 ) + * [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 ) + + +`give_explicit_poly_and_gaussian_double `_ + Transforms the product of + (x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) + exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta) exp(-(r-Nucl_center)^2 gama + .br + into + fact_k * [ sum (l_x = 0,i_order(1)) P_new(l_x,1) * (x-P_center(1))^l_x ] exp (- p (x-P_center(1))^2 ) + * [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 ) + * [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 ) + + +`give_explicit_poly_and_gaussian_x `_ + Transform the product of + (x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta) + into + fact_k (x-x_P)^iorder(1) (y-y_P)^iorder(2) (z-z_P)^iorder(3) exp(-p(r-P)^2) + + +`gser `_ + Undocumented + + +`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 `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`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. + + +`h_matrix_dressed `_ + 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 + + +`heap_dsort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_dsort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`heap_i2sort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_i2sort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`heap_i8sort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_i8sort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`heap_isort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_isort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`heap_sort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_sort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`hermite `_ + Hermite polynomial + + +`i2radix_sort `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`i2set_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`i2set_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`i2sort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`i8radix_sort `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`i8radix_sort_big `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`i8set_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`i8set_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`i8sort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_dsort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_dsort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`insertion_i2sort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_i2sort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`insertion_i8sort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_i8sort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`insertion_isort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_isort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`insertion_sort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_sort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`inv_int `_ + 1/i + + +`iradix_sort `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`iradix_sort_big `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`iset_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`iset_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`isort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`lambda_mrcc `_ + cm/ or perturbative 1/Delta_E(m) + + +`lambda_mrcc_tmp `_ + Undocumented + + +`lambda_pert `_ + cm/ or perturbative 1/Delta_E(m) + + +`lapack_diag `_ + Diagonalize matrix H + .br + H is untouched between input and ouptut + .br + eigevalues(i) = ith lowest eigenvalue of the H matrix + .br + eigvectors(i,j) = where i is the basis function and psi_j is the j th eigenvector + .br + + +`lapack_diag_s2 `_ + Diagonalize matrix H + .br + H is untouched between input and ouptut + .br + eigevalues(i) = ith lowest eigenvalue of the H matrix + .br + eigvectors(i,j) = where i is the basis function and psi_j is the j th eigenvector + .br + + +`lapack_diagd `_ + Diagonalize matrix H + .br + H is untouched between input and ouptut + .br + eigevalues(i) = ith lowest eigenvalue of the H matrix + .br + eigvectors(i,j) = where i is the basis function and psi_j is the j th eigenvector + .br + + +`lapack_partial_diag `_ + Diagonalize matrix H + .br + H is untouched between input and ouptut + .br + eigevalues(i) = ith lowest eigenvalue of the H matrix + .br + eigvectors(i,j) = where i is the basis function and psi_j is the j th eigenvector + .br + + +`logfact `_ + n! + + +`mrcc_dress `_ + Undocumented + + +`mrcc_dress_simple `_ + Undocumented + + +`mrcc_iterations `_ + Undocumented + + +`multiply_poly `_ + Multiply two polynomials + D(t) =! D(t) +( B(t)*C(t)) + + +`normalize `_ + Normalizes vector u + u is expected to be aligned in memory. + + +`nproc `_ + Number of current OpenMP threads + + +`ortho_lowdin `_ + Compute C_new=C_old.S^-1/2 canonical orthogonalization. + .br + overlap : overlap matrix + .br + LDA : leftmost dimension of overlap array + .br + N : Overlap matrix is NxN (array is (LDA,N) ) + .br + C : Coefficients of the vectors to orthogonalize. On exit, + orthogonal vectors + .br + LDC : leftmost dimension of C + .br + m : Coefficients matrix is MxN, ( array is (LDC,N) ) + .br + + +`oscillations `_ + Undocumented + + +`overlap_a_b_c `_ + Undocumented + + +`overlap_gaussian_x `_ + .. math:: + .br + \sum_{-infty}^{+infty} (x-A_x)^ax (x-B_x)^bx exp(-alpha(x-A_x)^2) exp(-beta(x-B_X)^2) dx + .br + + +`overlap_gaussian_xyz `_ + .. math:: + .br + S_x = \int (x-A_x)^{a_x} exp(-\alpha(x-A_x)^2) (x-B_x)^{b_x} exp(-beta(x-B_x)^2) dx \\ + S = S_x S_y S_z + .br + + +`overlap_x_abs `_ + .. math :: + .br + \int_{-infty}^{+infty} (x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) dx + .br + + +`pert_determinants `_ + Undocumented + + +`progress_active `_ + Current status for displaying progress bars. Global variable. + + +`progress_bar `_ + Current status for displaying progress bars. Global variable. + + +`progress_timeout `_ + Current status for displaying progress bars. Global variable. + + +`progress_title `_ + Current status for displaying progress bars. Global variable. + + +`progress_value `_ + Current status for displaying progress bars. Global variable. + + +`psi_ref_lock `_ + Locks on ref determinants to fill delta_ij + + +`recentered_poly2 `_ + Recenter two polynomials + + +`rint `_ + .. math:: + .br + \int_0^1 dx \exp(-p x^2) x^n + .br + + +`rint1 `_ + Standard version of rint + + +`rint_large_n `_ + Version of rint for large values of n + + +`rint_sum `_ + Needed for the calculation of two-electron integrals. + + +`rinteg `_ + Undocumented + + +`rintgauss `_ + Undocumented + + +`run_mrcc `_ + Undocumented + + +`run_progress `_ + Display a progress bar with documentation of what is happening + + +`sabpartial `_ + Undocumented + + +`set_generators_bitmasks_as_holes_and_particles `_ + Undocumented + + +`set_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`set_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`set_zero_extra_diag `_ + Undocumented + + +`sort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`start_progress `_ + Starts the progress bar + + +`stop_progress `_ + Stop the progress bar + + +`trap_signals `_ + What to do when a signal is caught. Here, trap Ctrl-C and call the control_C subroutine. + + +`u_dot_u `_ + Compute + + +`u_dot_v `_ + Compute + + +`wall_time `_ + The equivalent of cpu_time, but for the wall time. + + +`write_git_log `_ + Write the last git commit in file iunit. + diff --git a/plugins/MRCC_Utils/mrcc_general.irp.f b/plugins/MRCC_Utils/mrcc_general.irp.f index 92b33f6c..c567c76a 100644 --- a/plugins/MRCC_Utils/mrcc_general.irp.f +++ b/plugins/MRCC_Utils/mrcc_general.irp.f @@ -10,11 +10,14 @@ subroutine mrcc_iterations integer :: i,j double precision :: E_new, E_old, delta_e - integer :: iteration + integer :: iteration,i_oscillations + double precision :: E_past(4) E_new = 0.d0 delta_E = 1.d0 iteration = 0 - do while (delta_E > 100.d0*davidson_threshold) + j = 1 + i_oscillations = 0 + do while (delta_E > 1.d-7) iteration += 1 print *, '===========================' print *, 'MRCC Iteration', iteration @@ -25,10 +28,37 @@ subroutine mrcc_iterations call diagonalize_ci_dressed E_new = sum(ci_energy_dressed) delta_E = dabs(E_new - E_old) - if (iteration > 20) then - exit + + E_past(j) = E_new + j +=1 + if(j>4)then + j=1 + endif + if(iteration > 4) then + if(delta_E > 1.d-10)then + if(dabs(E_past(1) - E_past(3)) .le. delta_E .and. dabs(E_past(2) - E_past(4)).le. delta_E)then + print*,'OSCILLATIONS !!!' + oscillations = .True. + i_oscillations +=1 + lambda_mrcc_tmp = lambda_mrcc + endif + endif endif call save_wavefunction +! if (i_oscillations > 5) then +! exit +! endif + if (iteration > 200) then + exit + endif + print*,'------------' + print*,'VECTOR' + do i = 1, N_det_ref + print*,'' + print*,'psi_ref_coef(i,1) = ',psi_ref_coef(i,1) + print*,'delta_ii(i,1) = ',delta_ii(i,1) + enddo + print*,'------------' enddo call write_double(6,ci_energy_dressed(1),"Final MRCC energy") call ezfio_set_mrcc_cassd_energy(ci_energy_dressed(1)) diff --git a/plugins/MRCC_Utils/mrcc_utils.irp.f b/plugins/MRCC_Utils/mrcc_utils.irp.f index 2226acb2..d5b10311 100644 --- a/plugins/MRCC_Utils/mrcc_utils.irp.f +++ b/plugins/MRCC_Utils/mrcc_utils.irp.f @@ -1,29 +1,94 @@ + BEGIN_PROVIDER [integer, pert_determinants, (N_states, psi_det_size) ] + END_PROVIDER + + BEGIN_PROVIDER [ double precision, lambda_mrcc, (N_states,psi_det_size) ] &BEGIN_PROVIDER [ double precision, lambda_pert, (N_states,psi_det_size) ] implicit none BEGIN_DOC ! cm/ or perturbative 1/Delta_E(m) END_DOC - integer :: i,k - double precision :: ihpsi(N_states), hii + integer :: i,k,j + double precision :: ihpsi(N_states), hii,delta_e_eff,ihpsi_current(N_states),hij + integer :: i_ok,i_pert,i_pert_count + i_ok = 0 + + double precision :: phase_restart(N_states),tmp + do k = 1, N_states + phase_restart(k) = dsign(1.d0,psi_ref_coef_restart(1,k)/psi_ref_coef(1,k)) + enddo + i_pert_count = 0 do i=1,N_det_non_ref - call i_h_psi(psi_non_ref(1,1,i), psi_ref, psi_ref_coef, N_int, N_det_ref,& - size(psi_ref_coef,1), n_states, ihpsi) - call i_h_j(psi_non_ref(1,1,i),psi_non_ref(1,1,i),N_int,hii) + call i_h_psi(psi_non_ref(1,1,i), psi_ref_restart, psi_ref_coef_restart, N_int, N_det_ref,& + size(psi_ref_coef_restart,1), n_states, ihpsi) + call i_H_j(psi_non_ref(1,1,i),psi_non_ref(1,1,i),N_int,hii) do k=1,N_states lambda_pert(k,i) = 1.d0 / (psi_ref_energy_diagonalized(k)-hii) - if (dabs(ihpsi(k)).le.1.d-3) then + call i_h_psi(psi_non_ref(1,1,i), psi_ref, psi_ref_coef, N_int, N_det_ref,size(psi_ref_coef,1), n_states, ihpsi_current) + tmp = psi_non_ref_coef(i,k)/ihpsi_current(k) + i_pert = 1 + if((ihpsi(k) * lambda_pert(k,i))/psi_non_ref_coef_restart(i,k) .ge. 0.5d0 & + .and. (ihpsi(k) * lambda_pert(k,i))/psi_non_ref_coef_restart(i,k) > 0.d0 )then ! test on the first order coefficient + i_pert = 0 + endif + do j = 1, N_det_ref + call i_H_j(psi_non_ref(1,1,i),psi_ref(1,1,j),N_int,hij) + if(dabs(hij * tmp).ge.0.5d0)then + i_pert_count +=1 + i_pert = 1 + exit + endif + enddo + if( i_pert == 1)then + pert_determinants(k,i) = i_pert + endif + if(pert_determinants(k,i) == 1)then + i_ok +=1 lambda_mrcc(k,i) = lambda_pert(k,i) else - lambda_mrcc(k,i) = psi_non_ref_coef(i,k)/ihpsi(k) + lambda_mrcc(k,i) = psi_non_ref_coef(i,k)/ihpsi_current(k) endif enddo enddo +!if(oscillations)then +! print*,'AVERAGING the lambda_mrcc with those of the previous iterations' +! do i = 1, N_det_non_ref +! do k = 1, N_states + +! double precision :: tmp +! tmp = lambda_mrcc(k,i) +! lambda_mrcc(k,i) += lambda_mrcc_tmp(k,i) +! lambda_mrcc(k,i) = lambda_mrcc(k,i) * 0.5d0 +! if(dabs(tmp - lambda_mrcc(k,i)).ge.1.d-9)then +! print*,'' +! print*,'i = ',i +! print*,'psi_non_ref_coef(i,k) = ',psi_non_ref_coef(i,k) +! print*,'lambda_mrcc(k,i) = ',lambda_mrcc(k,i) +! print*,' tmp = ',tmp +! endif +! enddo +! enddo +!endif + print*,'N_det_non_ref = ',N_det_non_ref + print*,'Number of Perturbatively treated determinants = ',i_ok + print*,'i_pert_count = ',i_pert_count + print*,'psi_coef_ref_ratio = ',psi_ref_coef(2,1)/psi_ref_coef(1,1) END_PROVIDER +BEGIN_PROVIDER [ double precision, lambda_mrcc_tmp, (N_states,psi_det_size) ] + implicit none + lambda_mrcc_tmp = 0.d0 +END_PROVIDER + +BEGIN_PROVIDER [ logical, oscillations ] + implicit none + oscillations = .False. +END_PROVIDER + + !BEGIN_PROVIDER [ double precision, delta_ij_non_ref, (N_det_non_ref, N_det_non_ref,N_states) ] @@ -45,6 +110,31 @@ END_PROVIDER delta_ij = 0.d0 delta_ii = 0.d0 call H_apply_mrcc(delta_ij,delta_ii,N_det_ref,N_det_non_ref) + double precision :: max_delta + double precision :: accu + integer :: imax,jmax + max_delta = 0.d0 + accu = 0.d0 + do i = 1, N_det_ref + do j = 1, N_det_non_ref + accu += psi_non_ref_coef(j,1) * psi_ref_coef(i,1) * delta_ij(i,j,1) + if(dabs(delta_ij(i,j,1)).gt.max_delta)then + max_delta = dabs(delta_ij(i,j,1)) + imax = i + jmax = j + endif + enddo + enddo + print*,'' + print*,'' + print*,' = ',accu + print*,'MAX VAL OF DRESING = ',delta_ij(imax,jmax,1) + print*,'imax,jmax = ',imax,jmax + print*,'psi_ref_coef(imax,1) = ',psi_ref_coef(imax,1) + print*,'psi_non_ref_coef(jmax,1) = ',psi_non_ref_coef(jmax,1) + do i = 1, N_det_ref + print*,'delta_ii(i,1) = ',delta_ii(i,1) + enddo END_PROVIDER BEGIN_PROVIDER [ double precision, h_matrix_dressed, (N_det,N_det,N_states) ] diff --git a/plugins/Perturbation/README.rst b/plugins/Perturbation/README.rst index 7be62489..088bf2de 100644 --- a/plugins/Perturbation/README.rst +++ b/plugins/Perturbation/README.rst @@ -67,115 +67,137 @@ Assumptions pt2_.... -Documentation -============= +Needed Modules +============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. -`do_pt2_end `_ +.. image:: tree_dependency.png + +* `Properties `_ +* `Hartree_Fock `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Properties `_ +* `Hartree_Fock `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`do_pt2_end `_ If true, compute the PT2 at the end of the selection -`fill_h_apply_buffer_selection `_ +`fill_h_apply_buffer_selection `_ Fill the H_apply buffer with determiants for the selection -`max_exc_pert `_ +`max_exc_pert `_ Undocumented -`perturb_buffer_by_mono_delta_rho_one_point `_ +`perturb_buffer_by_mono_delta_rho_one_point `_ Applly pertubration ``delta_rho_one_point`` to the buffer of determinants generated in the H_apply routine. -`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. -`perturb_buffer_delta_rho_one_point `_ +`perturb_buffer_delta_rho_one_point `_ Applly pertubration ``delta_rho_one_point`` to the buffer of determinants generated in the H_apply routine. -`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. -`pt2_delta_rho_one_point `_ +`pt2_delta_rho_one_point `_ compute the perturbatibe contribution to the Integrated Spin density at z = z_one point of one determinant .br for the various n_st states, at various level of theory. @@ -196,7 +218,7 @@ Documentation .br -`pt2_dipole_moment_z `_ +`pt2_dipole_moment_z `_ compute the perturbatibe contribution to the dipole moment of one determinant .br for the various n_st states, at various level of theory. @@ -217,7 +239,7 @@ Documentation .br -`pt2_epstein_nesbet `_ +`pt2_epstein_nesbet `_ compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution .br for the various N_st states. @@ -228,7 +250,7 @@ Documentation .br -`pt2_epstein_nesbet_2x2 `_ +`pt2_epstein_nesbet_2x2 `_ compute the Epstein-Nesbet 2x2 diagonalization coefficient and energetic contribution .br for the various N_st states. @@ -239,7 +261,7 @@ Documentation .br -`pt2_epstein_nesbet_sc2 `_ +`pt2_epstein_nesbet_sc2 `_ compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution .br for the various N_st states, but with the CISD_SC2 energies and coefficients @@ -250,7 +272,7 @@ Documentation .br -`pt2_epstein_nesbet_sc2_no_projected `_ +`pt2_epstein_nesbet_sc2_no_projected `_ compute the Epstein-Nesbet perturbative first order coefficient and second order energetic contribution .br for the various N_st states, @@ -274,7 +296,7 @@ Documentation H_pert_diag = c_pert -`pt2_epstein_nesbet_sc2_projected `_ +`pt2_epstein_nesbet_sc2_projected `_ compute the Epstein-Nesbet perturbative first order coefficient and second order energetic contribution .br for the various N_st states, @@ -298,7 +320,7 @@ Documentation H_pert_diag = c_pert -`pt2_h_core `_ +`pt2_h_core `_ compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution .br for the various N_st states. @@ -309,12 +331,12 @@ Documentation .br -`pt2_max `_ +`pt2_max `_ The selection process stops when the largest PT2 (for all the state) is lower than pt2_max in absolute value -`pt2_moller_plesset `_ +`pt2_moller_plesset `_ compute the standard Moller-Plesset perturbative first order coefficient and second order energetic contribution .br for the various n_st states. @@ -325,39 +347,28 @@ Documentation .br -`remove_small_contributions `_ +`remove_small_contributions `_ Remove determinants with small contributions. N_states is assumed to be provided. -`repeat_all_e_corr `_ +`repeat_all_e_corr `_ Undocumented -`selection_criterion `_ +`selection_criterion `_ Threshold to select determinants. Set by selection routines. -`selection_criterion_factor `_ +`selection_criterion_factor `_ Threshold to select determinants. Set by selection routines. -`selection_criterion_min `_ +`selection_criterion_min `_ Threshold to select determinants. Set by selection routines. -`var_pt2_ratio `_ +`var_pt2_ratio `_ The selection process stops when the energy ratio variational/(variational+PT2) is equal to var_pt2_ratio -Needed Modules -============== - -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -.. image:: tree_dependency.png - -* `Properties `_ -* `Hartree_Fock `_ - diff --git a/plugins/Properties/README.rst b/plugins/Properties/README.rst index 5e5ab1cc..cd92ba14 100644 --- a/plugins/Properties/README.rst +++ b/plugins/Properties/README.rst @@ -2,47 +2,67 @@ Properties Module ================= -Documentation -============= +Needed Modules +============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. -`ao_integrated_delta_rho_all_points `_ +.. image:: tree_dependency.png + +* `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_integrated_delta_rho_all_points `_ array of the overlap in x,y between the AO function and integrated between [z,z+dz] in the z axis for all the z points that are given (N_z_pts) -`ao_integrated_delta_rho_one_point `_ +`ao_integrated_delta_rho_one_point `_ array of the overlap in x,y between the AO function and integrated between [z,z+dz] in the z axis for one specific z point -`average_position `_ +`average_position `_ average_position(1) = average_position(2) = average_position(3) = -`average_spread `_ +`average_spread `_ average_spread(1) = average_spread(2) = average_spread(3) = -`delta_z `_ +`delta_z `_ Undocumented -`diag_o1_mat_elem `_ +`diag_o1_mat_elem `_ Computes -`diag_o1_mat_elem_alpha_beta `_ +`diag_o1_mat_elem_alpha_beta `_ Computes -`filter_connected_mono `_ +`filter_connected_mono `_ Filters out the determinants that are not connected through PURE .br MONO EXCITATIONS OPERATORS (a^{\dagger}j a_i) @@ -56,99 +76,89 @@ Documentation idx(0) is the number of determinants that interact with key1 -`get_average `_ +`get_average `_ computes the average value of a pure MONO ELECTRONIC OPERATOR whom integrals on the MO basis are stored in "array" and with the density is stored in "density" -`i_o1_j `_ +`i_o1_j `_ Returns where i and j are determinants and O1 is a ONE BODY OPERATOR array is the array of the mono electronic operator on the MO basis -`i_o1_j_alpha_beta `_ +`i_o1_j_alpha_beta `_ Returns where i and j are determinants and O1 is a ONE BODY OPERATOR array is the array of the mono electronic operator on the MO basis -`i_o1_psi `_ +`i_o1_psi `_ for the various Nstates and O1 is a ONE BODY OPERATOR array is the array of the mono electronic operator on the MO basis -`i_o1_psi_alpha_beta `_ +`i_o1_psi_alpha_beta `_ for the various Nstates and O1 is a ONE BODY OPERATOR array is the array of the mono electronic operator on the MO basis -`i_unit_integrated_delta_rho `_ +`i_unit_integrated_delta_rho `_ fortran unit for the writing of the integrated delta_rho -`integrated_delta_rho_all_points `_ +`integrated_delta_rho_all_points `_ .br integrated_rho(alpha,z) - integrated_rho(beta,z) for all the z points chosen .br -`integrated_delta_rho_one_point `_ +`integrated_delta_rho_one_point `_ .br integral (x,y) and (z,z+delta_z) of rho(alpha) - rho(beta) on the MO basis .br -`mo_integrated_delta_rho_one_point `_ +`mo_integrated_delta_rho_one_point `_ .br array of the integrals needed of integrated_rho(alpha,z) - integrated_rho(beta,z) for z = z_one_point on the MO basis .br -`n_z_pts `_ +`n_z_pts `_ Undocumented -`test_average_value `_ +`test_average_value `_ Undocumented -`test_average_value_alpha_beta `_ +`test_average_value_alpha_beta `_ Undocumented -`test_dm `_ +`test_dm `_ Undocumented -`z_max `_ +`z_max `_ Undocumented -`z_min `_ +`z_min `_ Undocumented -`z_one_point `_ +`z_one_point `_ z point on which the integrated delta rho is calculated -Needed Modules -============== - -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -.. image:: tree_dependency.png - -* `Determinants `_ - diff --git a/plugins/Psiref_CAS/README.rst b/plugins/Psiref_CAS/README.rst index 83d74753..1715049a 100644 --- a/plugins/Psiref_CAS/README.rst +++ b/plugins/Psiref_CAS/README.rst @@ -31,6 +31,14 @@ Documentation CAS wave function, defined from the application of the CAS bitmask on the determinants. idx_cas gives the indice of the CAS determinant in psi_det. + +`psi_ref_coef_restart `_ + Projection of the CAS wave function on the restart wave function. + + +`psi_ref_restart `_ + Projection of the CAS wave function on the restart wave function. + Needed Modules ============== @@ -41,3 +49,46 @@ Needed Modules * `Psiref_Utils `_ +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Psiref_Utils `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`idx_ref `_ + CAS wave function, defined from the application of the CAS bitmask on the + determinants. idx_cas gives the indice of the CAS determinant in psi_det. + + +`n_det_ref `_ + CAS wave function, defined from the application of the CAS bitmask on the + determinants. idx_cas gives the indice of the CAS determinant in psi_det. + + +`psi_ref `_ + CAS wave function, defined from the application of the CAS bitmask on the + determinants. idx_cas gives the indice of the CAS determinant in psi_det. + + +`psi_ref_coef `_ + CAS wave function, defined from the application of the CAS bitmask on the + determinants. idx_cas gives the indice of the CAS determinant in psi_det. + + +`psi_ref_coef_restart `_ + Projection of the CAS wave function on the restart wave function. + + +`psi_ref_restart `_ + Projection of the CAS wave function on the restart wave function. + diff --git a/plugins/Psiref_CAS/psi_ref.irp.f b/plugins/Psiref_CAS/psi_ref.irp.f index 81df60e9..f67f0587 100644 --- a/plugins/Psiref_CAS/psi_ref.irp.f +++ b/plugins/Psiref_CAS/psi_ref.irp.f @@ -26,3 +26,29 @@ use bitmasks END_PROVIDER + BEGIN_PROVIDER [ integer(bit_kind), psi_ref_restart, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_ref_coef_restart, (psi_det_size,n_states) ] + implicit none + BEGIN_DOC + ! Projection of the CAS wave function on the restart wave function. + END_DOC + integer :: i,j,k + integer, save :: ifirst + + if(ifirst == 0)then + ifirst = 1 + do i=1,N_det_ref + do k=1,N_int + psi_ref_restart(k,1,i) = psi_cas(k,1,i) + psi_ref_restart(k,2,i) = psi_cas(k,2,i) + enddo + enddo + do k=1,N_states + do i=1,N_det_ref + psi_ref_coef_restart(i,k) = psi_cas_coef(i,k) + enddo + enddo + endif + +END_PROVIDER + diff --git a/plugins/Psiref_Utils/README.rst b/plugins/Psiref_Utils/README.rst index 2dd9b745..c30cdb11 100644 --- a/plugins/Psiref_Utils/README.rst +++ b/plugins/Psiref_Utils/README.rst @@ -13,11 +13,11 @@ Documentation .. Do not edit this section. It was auto-generated from the .. by the `update_README.py` script. -`get_index_in_psi_ref_sorted_bit `_ +`get_index_in_psi_ref_sorted_bit `_ Returns the index of the determinant in the ``psi_ref_sorted_bit`` array -`h_matrix_ref `_ +`h_matrix_ref `_ Undocumented @@ -42,7 +42,7 @@ Documentation idx_non_ref_rev gives the reverse. -`is_in_psi_ref `_ +`is_in_psi_ref `_ True if the determinant ``det`` is in the wave function @@ -60,7 +60,7 @@ Documentation been done going from psi_ref to psi_non_ref -`psi_coef_ref_diagonalized `_ +`psi_coef_ref_diagonalized `_ Undocumented @@ -78,12 +78,26 @@ Documentation idx_non_ref_rev gives the reverse. -`psi_non_ref_coef_sorted_bit `_ +`psi_non_ref_coef_restart `_ + Set of determinants which are not part of the reference, defined from the application + of the reference bitmask on the determinants. + idx_non_ref gives the indice of the determinant in psi_det. + But this is with respect to the restart wave function. + + +`psi_non_ref_coef_sorted_bit `_ Reference determinants sorted to accelerate the search of a random determinant in the wave function. -`psi_non_ref_sorted_bit `_ +`psi_non_ref_restart `_ + Set of determinants which are not part of the reference, defined from the application + of the reference bitmask on the determinants. + idx_non_ref gives the indice of the determinant in psi_det. + But this is with respect to the restart wave function. + + +`psi_non_ref_sorted_bit `_ Reference determinants sorted to accelerate the search of a random determinant in the wave function. @@ -93,11 +107,11 @@ Documentation function. -`psi_ref_energy `_ +`psi_ref_energy `_ Undocumented -`psi_ref_energy_diagonalized `_ +`psi_ref_energy_diagonalized `_ Undocumented @@ -105,3 +119,740 @@ Documentation Reference determinants sorted to accelerate the search of a random determinant in the wave function. +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`a_coef `_ + Undocumented + + +`abort_all `_ + If True, all the calculation is aborted + + +`abort_here `_ + If True, all the calculation is aborted + + +`add_poly `_ + Add two polynomials + D(t) =! D(t) +( B(t)+C(t)) + + +`add_poly_multiply `_ + Add a polynomial multiplied by a constant + D(t) =! D(t) +( cst * B(t)) + + +`align_double `_ + Compute 1st dimension such that it is aligned for vectorization. + + +`apply_rotation `_ + Apply the rotation found by find_rotation + + +`approx_dble `_ + Undocumented + + +`b_coef `_ + Undocumented + + +`binom `_ + Binomial coefficients + + +`binom_func `_ + .. math :: + .br + \frac{i!}{j!(i-j)!} + .br + + +`binom_transp `_ + Binomial coefficients + + +`catch_signal `_ + What to do on Ctrl-C. If two Ctrl-C are pressed within 1 sec, the calculation if aborted. + + +`dble_fact `_ + Undocumented + + +`dble_fact_even `_ + n!! + + +`dble_fact_odd `_ + n!! + + +`dble_logfact `_ + n!! + + +`ddfact2 `_ + Undocumented + + +`dset_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`dset_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`dsort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`erf0 `_ + Undocumented + + +`f_integral `_ + function that calculates the following integral + \int_{\-infty}^{+\infty} x^n \exp(-p x^2) dx + + +`fact `_ + n! + + +`fact_inv `_ + 1/n! + + +`find_rotation `_ + Find A.C = B + + +`gammln `_ + Undocumented + + +`gammp `_ + Undocumented + + +`gaussian_product `_ + Gaussian product in 1D. + e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2} + + +`gaussian_product_x `_ + Gaussian product in 1D. + e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2} + + +`gcf `_ + Undocumented + + +`get_index_in_psi_ref_sorted_bit `_ + Returns the index of the determinant in the ``psi_ref_sorted_bit`` array + + +`get_pseudo_inverse `_ + Find C = A^-1 + + +`give_explicit_poly_and_gaussian `_ + Transforms the product of + (x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta) + into + fact_k * [ sum (l_x = 0,i_order(1)) P_new(l_x,1) * (x-P_center(1))^l_x ] exp (- p (x-P_center(1))^2 ) + * [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 ) + * [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 ) + + +`give_explicit_poly_and_gaussian_double `_ + Transforms the product of + (x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) + exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta) exp(-(r-Nucl_center)^2 gama + .br + into + fact_k * [ sum (l_x = 0,i_order(1)) P_new(l_x,1) * (x-P_center(1))^l_x ] exp (- p (x-P_center(1))^2 ) + * [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 ) + * [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 ) + + +`give_explicit_poly_and_gaussian_x `_ + Transform the product of + (x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta) + into + fact_k (x-x_P)^iorder(1) (y-y_P)^iorder(2) (z-z_P)^iorder(3) exp(-p(r-P)^2) + + +`gser `_ + Undocumented + + +`h_matrix_ref `_ + Undocumented + + +`heap_dsort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_dsort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`heap_i2sort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_i2sort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`heap_i8sort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_i8sort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`heap_isort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_isort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`heap_sort `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`heap_sort_big `_ + Sort array x(isize) using the heap sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`hermite `_ + Hermite polynomial + + +`holes_operators `_ + holes_operators represents an array of integers where all the holes have + been done going from psi_ref to psi_non_ref + particles_operators represents an array of integers where all the particles have + been done going from psi_ref to psi_non_ref + + +`i2radix_sort `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`i2set_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`i2set_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`i2sort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`i8radix_sort `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`i8radix_sort_big `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`i8set_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`i8set_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`i8sort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`idx_non_ref `_ + Set of determinants which are not part of the reference, defined from the application + of the reference bitmask on the determinants. + idx_non_ref gives the indice of the determinant in psi_det. + idx_non_ref_rev gives the reverse. + + +`idx_non_ref_rev `_ + Set of determinants which are not part of the reference, defined from the application + of the reference bitmask on the determinants. + idx_non_ref gives the indice of the determinant in psi_det. + idx_non_ref_rev gives the reverse. + + +`insertion_dsort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_dsort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`insertion_i2sort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_i2sort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`insertion_i8sort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_i8sort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`insertion_isort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_isort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`insertion_sort `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`insertion_sort_big `_ + Sort array x(isize) using the insertion sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`inv_int `_ + 1/i + + +`iradix_sort `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`iradix_sort_big `_ + Sort integer array x(isize) using the radix sort algorithm. + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + iradix should be -1 in input. + + +`is_in_psi_ref `_ + True if the determinant ``det`` is in the wave function + + +`iset_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`iset_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`isort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`lapack_diag `_ + Diagonalize matrix H + .br + H is untouched between input and ouptut + .br + eigevalues(i) = ith lowest eigenvalue of the H matrix + .br + eigvectors(i,j) = where i is the basis function and psi_j is the j th eigenvector + .br + + +`lapack_diag_s2 `_ + Diagonalize matrix H + .br + H is untouched between input and ouptut + .br + eigevalues(i) = ith lowest eigenvalue of the H matrix + .br + eigvectors(i,j) = where i is the basis function and psi_j is the j th eigenvector + .br + + +`lapack_diagd `_ + Diagonalize matrix H + .br + H is untouched between input and ouptut + .br + eigevalues(i) = ith lowest eigenvalue of the H matrix + .br + eigvectors(i,j) = where i is the basis function and psi_j is the j th eigenvector + .br + + +`lapack_partial_diag `_ + Diagonalize matrix H + .br + H is untouched between input and ouptut + .br + eigevalues(i) = ith lowest eigenvalue of the H matrix + .br + eigvectors(i,j) = where i is the basis function and psi_j is the j th eigenvector + .br + + +`logfact `_ + n! + + +`multiply_poly `_ + Multiply two polynomials + D(t) =! D(t) +( B(t)*C(t)) + + +`n_det_non_ref `_ + Set of determinants which are not part of the reference, defined from the application + of the reference bitmask on the determinants. + idx_non_ref gives the indice of the determinant in psi_det. + idx_non_ref_rev gives the reverse. + + +`normalize `_ + Normalizes vector u + u is expected to be aligned in memory. + + +`nproc `_ + Number of current OpenMP threads + + +`ortho_lowdin `_ + Compute C_new=C_old.S^-1/2 canonical orthogonalization. + .br + overlap : overlap matrix + .br + LDA : leftmost dimension of overlap array + .br + N : Overlap matrix is NxN (array is (LDA,N) ) + .br + C : Coefficients of the vectors to orthogonalize. On exit, + orthogonal vectors + .br + LDC : leftmost dimension of C + .br + m : Coefficients matrix is MxN, ( array is (LDC,N) ) + .br + + +`overlap_a_b_c `_ + Undocumented + + +`overlap_gaussian_x `_ + .. math:: + .br + \sum_{-infty}^{+infty} (x-A_x)^ax (x-B_x)^bx exp(-alpha(x-A_x)^2) exp(-beta(x-B_X)^2) dx + .br + + +`overlap_gaussian_xyz `_ + .. math:: + .br + S_x = \int (x-A_x)^{a_x} exp(-\alpha(x-A_x)^2) (x-B_x)^{b_x} exp(-beta(x-B_x)^2) dx \\ + S = S_x S_y S_z + .br + + +`overlap_x_abs `_ + .. math :: + .br + \int_{-infty}^{+infty} (x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) dx + .br + + +`particles_operators `_ + holes_operators represents an array of integers where all the holes have + been done going from psi_ref to psi_non_ref + particles_operators represents an array of integers where all the particles have + been done going from psi_ref to psi_non_ref + + +`progress_active `_ + Current status for displaying progress bars. Global variable. + + +`progress_bar `_ + Current status for displaying progress bars. Global variable. + + +`progress_timeout `_ + Current status for displaying progress bars. Global variable. + + +`progress_title `_ + Current status for displaying progress bars. Global variable. + + +`progress_value `_ + Current status for displaying progress bars. Global variable. + + +`psi_coef_ref_diagonalized `_ + Undocumented + + +`psi_non_ref `_ + Set of determinants which are not part of the reference, defined from the application + of the reference bitmask on the determinants. + idx_non_ref gives the indice of the determinant in psi_det. + idx_non_ref_rev gives the reverse. + + +`psi_non_ref_coef `_ + Set of determinants which are not part of the reference, defined from the application + of the reference bitmask on the determinants. + idx_non_ref gives the indice of the determinant in psi_det. + idx_non_ref_rev gives the reverse. + + +`psi_non_ref_coef_restart `_ + Set of determinants which are not part of the reference, defined from the application + of the reference bitmask on the determinants. + idx_non_ref gives the indice of the determinant in psi_det. + But this is with respect to the restart wave function. + + +`psi_non_ref_coef_sorted_bit `_ + Reference determinants sorted to accelerate the search of a random determinant in the wave + function. + + +`psi_non_ref_restart `_ + Set of determinants which are not part of the reference, defined from the application + of the reference bitmask on the determinants. + idx_non_ref gives the indice of the determinant in psi_det. + But this is with respect to the restart wave function. + + +`psi_non_ref_sorted_bit `_ + Reference determinants sorted to accelerate the search of a random determinant in the wave + function. + + +`psi_ref_coef_sorted_bit `_ + Reference determinants sorted to accelerate the search of a random determinant in the wave + function. + + +`psi_ref_energy `_ + Undocumented + + +`psi_ref_energy_diagonalized `_ + Undocumented + + +`psi_ref_sorted_bit `_ + Reference determinants sorted to accelerate the search of a random determinant in the wave + function. + + +`recentered_poly2 `_ + Recenter two polynomials + + +`rint `_ + .. math:: + .br + \int_0^1 dx \exp(-p x^2) x^n + .br + + +`rint1 `_ + Standard version of rint + + +`rint_large_n `_ + Version of rint for large values of n + + +`rint_sum `_ + Needed for the calculation of two-electron integrals. + + +`rinteg `_ + Undocumented + + +`rintgauss `_ + Undocumented + + +`run_progress `_ + Display a progress bar with documentation of what is happening + + +`sabpartial `_ + Undocumented + + +`set_order `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + + +`set_order_big `_ + array A has already been sorted, and iorder has contains the new order of + elements of A. This subroutine changes the order of x to match the new order of A. + This is a version for very large arrays where the indices need + to be in integer*8 format + + +`set_zero_extra_diag `_ + Undocumented + + +`sort `_ + Sort array x(isize). + iorder in input should be (1,2,3,...,isize), and in output + contains the new order of the elements. + + +`start_progress `_ + Starts the progress bar + + +`stop_progress `_ + Stop the progress bar + + +`trap_signals `_ + What to do when a signal is caught. Here, trap Ctrl-C and call the control_C subroutine. + + +`u_dot_u `_ + Compute + + +`u_dot_v `_ + Compute + + +`wall_time `_ + The equivalent of cpu_time, but for the wall time. + + +`write_git_log `_ + Write the last git commit in file iunit. + diff --git a/plugins/Psiref_Utils/psi_ref_utils.irp.f b/plugins/Psiref_Utils/psi_ref_utils.irp.f index 21c58056..f9cf1303 100644 --- a/plugins/Psiref_Utils/psi_ref_utils.irp.f +++ b/plugins/Psiref_Utils/psi_ref_utils.irp.f @@ -58,6 +58,48 @@ END_PROVIDER N_det_non_ref = i_non_ref END_PROVIDER + BEGIN_PROVIDER [ integer(bit_kind), psi_non_ref_restart, (N_int,2,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, psi_non_ref_coef_restart, (psi_det_size,n_states) ] + implicit none + BEGIN_DOC + ! Set of determinants which are not part of the reference, defined from the application + ! of the reference bitmask on the determinants. + ! idx_non_ref gives the indice of the determinant in psi_det. + ! But this is with respect to the restart wave function. + END_DOC + integer :: i_non_ref,j,k + integer :: degree + logical :: in_ref + integer, save :: ifirst = 0 + if(ifirst==0)then + ifirst = 1 + i_non_ref =0 + do k=1,N_det + in_ref = .False. + do j=1,N_det_ref + call get_excitation_degree(psi_ref(1,1,j), psi_det(1,1,k), degree, N_int) + if (degree == 0) then + in_ref = .True. + exit + endif + enddo + if (.not.in_ref) then + double precision :: hij + i_non_ref += 1 + do j=1,N_int + psi_non_ref_restart(j,1,i_non_ref) = psi_det(j,1,k) + psi_non_ref_restart(j,2,i_non_ref) = psi_det(j,2,k) + enddo + do j=1,N_states + psi_non_ref_coef_restart(i_non_ref,j) = psi_coef(k,j) + enddo + endif + enddo + endif +END_PROVIDER + + + BEGIN_PROVIDER [ integer(bit_kind), psi_non_ref_sorted_bit, (N_int,2,psi_det_size) ] &BEGIN_PROVIDER [ double precision, psi_non_ref_coef_sorted_bit, (psi_det_size,N_states) ] implicit none 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/README.rst b/plugins/Selectors_full/README.rst index 33cbaf16..795234b4 100644 --- a/plugins/Selectors_full/README.rst +++ b/plugins/Selectors_full/README.rst @@ -2,183 +2,10 @@ Selectors_full Module ===================== -Documentation -============= - -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -`coef_hf_selector `_ - energy of correlation per determinant respect to the Hartree Fock determinant - .br - for the all the double excitations in the selectors determinants - .br - E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation - .br - E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation - .br - coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants - - -`delta_e_per_selector `_ - energy of correlation per determinant respect to the Hartree Fock determinant - .br - for the all the double excitations in the selectors determinants - .br - E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation - .br - E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation - .br - coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants - - -`double_index_selectors `_ - degree of excitation respect to Hartree Fock for the wave function - .br - for the all the selectors determinants - .br - double_index_selectors = list of the index of the double excitations - .br - n_double_selectors = number of double excitations in the selectors determinants - - -`e_corr_double_only `_ - energy of correlation per determinant respect to the Hartree Fock determinant - .br - for the all the double excitations in the selectors determinants - .br - E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation - .br - E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation - .br - coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants - - -`e_corr_per_selectors `_ - energy of correlation per determinant respect to the Hartree Fock determinant - .br - for the all the double excitations in the selectors determinants - .br - E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation - .br - E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation - .br - coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants - - -`e_corr_second_order `_ - energy of correlation per determinant respect to the Hartree Fock determinant - .br - for the all the double excitations in the selectors determinants - .br - E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation - .br - E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation - .br - coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants - - -`exc_degree_per_selectors `_ - degree of excitation respect to Hartree Fock for the wave function - .br - for the all the selectors determinants - .br - double_index_selectors = list of the index of the double excitations - .br - n_double_selectors = number of double excitations in the selectors determinants - - -`i_h_hf_per_selectors `_ - energy of correlation per determinant respect to the Hartree Fock determinant - .br - for the all the double excitations in the selectors determinants - .br - E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation - .br - E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation - .br - coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants - - -`inv_selectors_coef_hf `_ - energy of correlation per determinant respect to the Hartree Fock determinant - .br - for the all the double excitations in the selectors determinants - .br - E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation - .br - E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation - .br - coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants - - -`inv_selectors_coef_hf_squared `_ - energy of correlation per determinant respect to the Hartree Fock determinant - .br - for the all the double excitations in the selectors determinants - .br - E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation - .br - E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation - .br - coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants - - -`n_det_selectors `_ - For Single reference wave functions, the number of selectors is 1 : the - Hartree-Fock determinant - - -`n_double_selectors `_ - degree of excitation respect to Hartree Fock for the wave function - .br - for the all the selectors determinants - .br - double_index_selectors = list of the index of the double excitations - .br - n_double_selectors = number of double excitations in the selectors determinants - - -`psi_selectors `_ - Determinants on which we apply for perturbation. - - -`psi_selectors_ab `_ - Determinants on which we apply . - They are sorted by the 3 highest electrons in the alpha part, - then by the 3 highest electrons in the beta part to accelerate - the research of connected determinants. - - -`psi_selectors_coef `_ - Determinants on which we apply for perturbation. - - -`psi_selectors_coef_ab `_ - Determinants on which we apply . - They are sorted by the 3 highest electrons in the alpha part, - then by the 3 highest electrons in the beta part to accelerate - the research of connected determinants. - - -`psi_selectors_diag_h_mat `_ - Diagonal elements of the H matrix for each selectors - - -`psi_selectors_next_ab `_ - Determinants on which we apply . - They are sorted by the 3 highest electrons in the alpha part, - then by the 3 highest electrons in the beta part to accelerate - the research of connected determinants. - - -`psi_selectors_size `_ - Undocumented - Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. .. image:: tree_dependency.png @@ -186,3 +13,187 @@ Needed Modules * `Determinants `_ * `Hartree_Fock `_ +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +.. image:: tree_dependency.png + +* `Determinants `_ +* `Hartree_Fock `_ + +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`coef_hf_selector `_ + energy of correlation per determinant respect to the Hartree Fock determinant + .br + for the all the double excitations in the selectors determinants + .br + E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation + .br + E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation + .br + coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants + + +`delta_e_per_selector `_ + energy of correlation per determinant respect to the Hartree Fock determinant + .br + for the all the double excitations in the selectors determinants + .br + E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation + .br + E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation + .br + coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants + + +`double_index_selectors `_ + degree of excitation respect to Hartree Fock for the wave function + .br + for the all the selectors determinants + .br + double_index_selectors = list of the index of the double excitations + .br + n_double_selectors = number of double excitations in the selectors determinants + + +`e_corr_double_only `_ + energy of correlation per determinant respect to the Hartree Fock determinant + .br + for the all the double excitations in the selectors determinants + .br + E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation + .br + E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation + .br + coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants + + +`e_corr_per_selectors `_ + energy of correlation per determinant respect to the Hartree Fock determinant + .br + for the all the double excitations in the selectors determinants + .br + E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation + .br + E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation + .br + coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants + + +`e_corr_second_order `_ + energy of correlation per determinant respect to the Hartree Fock determinant + .br + for the all the double excitations in the selectors determinants + .br + E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation + .br + E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation + .br + coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants + + +`exc_degree_per_selectors `_ + degree of excitation respect to Hartree Fock for the wave function + .br + for the all the selectors determinants + .br + double_index_selectors = list of the index of the double excitations + .br + n_double_selectors = number of double excitations in the selectors determinants + + +`i_h_hf_per_selectors `_ + energy of correlation per determinant respect to the Hartree Fock determinant + .br + for the all the double excitations in the selectors determinants + .br + E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation + .br + E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation + .br + coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants + + +`inv_selectors_coef_hf `_ + energy of correlation per determinant respect to the Hartree Fock determinant + .br + for the all the double excitations in the selectors determinants + .br + E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation + .br + E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation + .br + coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants + + +`inv_selectors_coef_hf_squared `_ + energy of correlation per determinant respect to the Hartree Fock determinant + .br + for the all the double excitations in the selectors determinants + .br + E_corr_per_selectors(i) = * c(D_i)/c(HF) if |D_i> is a double excitation + .br + E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation + .br + coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants + + +`n_det_selectors `_ + For Single reference wave functions, the number of selectors is 1 : the + Hartree-Fock determinant + + +`n_double_selectors `_ + degree of excitation respect to Hartree Fock for the wave function + .br + for the all the selectors determinants + .br + double_index_selectors = list of the index of the double excitations + .br + n_double_selectors = number of double excitations in the selectors determinants + + +`psi_selectors `_ + Determinants on which we apply for perturbation. + + +`psi_selectors_ab `_ + Determinants on which we apply . + They are sorted by the 3 highest electrons in the alpha part, + then by the 3 highest electrons in the beta part to accelerate + the research of connected determinants. + + +`psi_selectors_coef `_ + Determinants on which we apply for perturbation. + + +`psi_selectors_coef_ab `_ + Determinants on which we apply . + They are sorted by the 3 highest electrons in the alpha part, + then by the 3 highest electrons in the beta part to accelerate + the research of connected determinants. + + +`psi_selectors_diag_h_mat `_ + Diagonal elements of the H matrix for each selectors + + +`psi_selectors_next_ab `_ + Determinants on which we apply . + They are sorted by the 3 highest electrons in the alpha part, + then by the 3 highest electrons in the beta part to accelerate + the research of connected determinants. + + +`psi_selectors_size `_ + Undocumented + 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 74fe5cca..2b7f777f 100644 Binary files a/plugins/SingleRefMethod/tree_dependency.png and b/plugins/SingleRefMethod/tree_dependency.png differ diff --git a/scripts/compilation/qp_create_ninja.py b/scripts/compilation/qp_create_ninja.py index ae5aa654..36252007 100755 --- a/scripts/compilation/qp_create_ninja.py +++ b/scripts/compilation/qp_create_ninja.py @@ -23,12 +23,11 @@ except ImportError: "..", "..", "quantum_package.rc")) - print """ -Error: - source %s -""" % f + + print "\n".join(["", "Error:", "source %s" % f, ""]) sys.exit(1) + # __ # /__ | _ |_ _. | _. ._ o _. |_ | _ _ # \_| | (_) |_) (_| | \/ (_| | | (_| |_) | (/_ _> @@ -516,7 +515,7 @@ def ninja_readme_rule(): For not dealted the readme when ninja -t clean and the generator option """ l_string = ["rule build_readme", - " command = cd $module_abs ; update_README.py $module_root", + " command = qp_update_readme.py $module_abs --root_module $module_root", " description = update_README $module_rel", " generator = 1", ""] @@ -552,7 +551,8 @@ def ninja_readme_build(path_module, d_irp, dict_root_path): # / def get_binaries(path_module): """ - Return the list of binaries (Path= namedtuple('Path', ['abs', 'rel']) for a module + Return the list of binaries + (Path= namedtuple('Path', ['abs', 'rel']) for a module """ import subprocess @@ -666,20 +666,26 @@ def ninja_binaries_build(path_module, l_children, d_binaries): # s t r i n g # # ~#~#~#~#~#~ # - path_readme = os.path.join(path_module.abs, "README.rst") - path_png = os.path.join(path_module.abs, "tree_dependency.png") - l_string = ["build {0}: build_binaries {1} {2}".format(" ".join(l_abs_bin), EZFIO_LIB, ninja_module_path), " module_abs = {0}".format(path_module.abs), " module_rel = {0}".format(path_module.rel), ""] - l_string += ["build module_{0}: phony {1} {2} {3}".format(path_module.rel, - " ".join(l_abs_bin), - path_readme, - path_png - ), ""] + return l_string + + +def ninja_module_build(path_module, d_binaries): + + l_abs_bin = [binary.abs for binary in d_binaries[path_module]] + + path_readme = os.path.join(path_module.abs, "README.rst") + path_png = os.path.join(path_module.abs, "tree_dependency.png") + + l_string = ["build module_{0}: phony {1} {2} {3}".format(path_module.rel, + " ".join(l_abs_bin), + path_readme, + path_png), ""] return l_string @@ -723,7 +729,7 @@ def ninja_dot_tree_build(path_module, l_module): # |\/| _ _| | _ # | | (_) (_| |_| | (/_ # -def create_build_ninja_module(path_module): +def save_subninja_file(path_module): l_string = ["builddir = {0}".format(os.path.dirname(ROOT_BUILD_NINJA)), ""] @@ -732,17 +738,19 @@ def create_build_ninja_module(path_module): ""] l_string += ["rule make_local_binaries", - " command = ninja -f {0} module_{1}".format( - ROOT_BUILD_NINJA, path_module.rel), " pool = console", + " command = ninja -f {0} module_{1}".format(ROOT_BUILD_NINJA, path_module.rel), + " pool = console", " description = Compile only {0}".format(path_module.rel), ""] l_string += ["rule make_all_binaries", " command = ninja -f {0}".format(ROOT_BUILD_NINJA), - " pool = console", " description = Compiling all modules", + " pool = console", + " description = Compiling all modules", ""] - l_string += ["rule make_clean", " command = module_handler.py clean {0}".format(path_module.rel), + l_string += ["rule make_clean", + " command = module_handler.py clean {0}".format(path_module.rel), " description = Cleaning module {0}".format(path_module.rel), ""] @@ -766,7 +774,7 @@ def create_build_ninja_global(): " command = {0} update".format(__file__), ""] - l_string += ["rule make_all_binaries", + l_string += ["rule make_all", " command = ninja -f {0}".format(ROOT_BUILD_NINJA), " pool = console", " description = Compiling all modules", ""] @@ -777,7 +785,7 @@ def create_build_ninja_global(): l_string += ["build dummy_target: update_build_ninja_root", "", - "build all: make_all_binaries dummy_target", + "build all: make_all dummy_target", "default all", "", "build clean: make_clean dummy_target", @@ -919,9 +927,6 @@ if __name__ == "__main__": for module_to_compile in l_module: - if arguments["--development"]: - create_build_ninja_module(module_to_compile) - # ~#~#~#~#~#~#~#~ # # S y m l i n k # # ~#~#~#~#~#~#~#~ # @@ -939,8 +944,14 @@ if __name__ == "__main__": l_string += ninja_binaries_build(module_to_compile, l_children, d_binaries) - l_string += ninja_gitignore_build(module_to_compile, d_binaries, - l_symlink) + if arguments["--development"]: + + l_string += ninja_module_build(module_to_compile, d_binaries) + + l_string += ninja_gitignore_build(module_to_compile, d_binaries, + l_symlink) + + save_subninja_file(module_to_compile) # ~#~#~#~#~ # # S a v e s # 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/module_handler.py b/scripts/module/module_handler.py index b36bdb10..b491fd9d 100755 --- a/scripts/module/module_handler.py +++ b/scripts/module/module_handler.py @@ -23,16 +23,19 @@ import shutil try: from docopt import docopt - from qp_path import QP_SRC - from qp_path import QP_ROOT + from qp_path import QP_SRC, QP_ROOT, QP_PLUGINS except ImportError: print "source .quantum_package.rc" raise -# Canot cache for namedtuple are not hashable -def is_module(path_module): - return os.path.isfile(os.path.join(QP_SRC, path_module, +def is_module(path_module_rel): + return os.path.isfile(os.path.join(QP_SRC, path_module_rel, + "NEEDED_CHILDREN_MODULES")) + + +def is_plugin(path_module_rel): + return os.path.isfile(os.path.join(QP_PLUGINS, path_module_rel, "NEEDED_CHILDREN_MODULES")) @@ -180,13 +183,7 @@ class ModuleHandler(): basename = "tree_dependency" path = '{0}.png'.format(basename) - # Init - try: - from graphviz import Digraph - except: - with open(path, 'a'): - os.utime(path, None) - return + from graphviz import Digraph all_ready_done = [] @@ -209,7 +206,14 @@ class ModuleHandler(): graph.node(module, fontcolor="red") draw_module_edge(module, d_ref[module]) - graph.render(cleanup=True) + # Try to render the png + # If not just touch it + try: + graph.render(cleanup=True) + except: + with open(path, 'a'): + os.utime(path, None) + return if __name__ == '__main__': @@ -292,4 +296,3 @@ if __name__ == '__main__': l_text = l_dir + l_file + l_symlink + l_exe l_text.sort() f.write("\n".join(l_text)) - diff --git a/scripts/module/qp_install_module.py b/scripts/module/qp_install_module.py index 1c9911a6..99674e14 100755 --- a/scripts/module/qp_install_module.py +++ b/scripts/module/qp_install_module.py @@ -22,7 +22,7 @@ try: from docopt import docopt from module_handler import ModuleHandler, get_dict_child from module_handler import get_l_module_descendant - from update_README import Doc_key, Needed_key + from qp_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" @@ -56,8 +56,8 @@ def save_new_module(path, l_child): with open(os.path.join(path, "README.rst"), "w") as f: f.write(header + "\n") - f.write(Doc_key + "\n") - f.write(Needed_key + "\n") + f.write(D_KEY["needed_module"]) + f.write(D_KEY["documentation"]) if __name__ == '__main__': @@ -108,8 +108,9 @@ if __name__ == '__main__': save_new_module(path, l_child_reduce) print " [ OK ]" - print "If this was a plugins, you can install it normaly. Type:" + 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" elif arguments["download"]: pass diff --git a/scripts/module/qp_update_readme.py b/scripts/module/qp_update_readme.py new file mode 100755 index 00000000..9ff9603b --- /dev/null +++ b/scripts/module/qp_update_readme.py @@ -0,0 +1,205 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +Updates the README.rst of a module +Usage: + qp_update_readme.py [...] [--root_module=] + +Options: + path_readme: All the absolute path you want to update. + By default is the cwd + --root_module: Is the path of the root module who containt the tags file. + By default is the cwd +""" + +import sys + +try: + from docopt import docopt + from module_handler import is_module, is_plugin +except: + print "Please check if you have sourced the .quantum_package.rc" + print "(`source .quantum_package.rc`)" + print sys.exit(1) + +import os +from collections import namedtuple +from collections import defaultdict + + +def header_format(str_): + + warning = "\n".join([".. Do not edit this section It was auto-generated", + ".. by the `update_README.py` script."]) + + return "{0}\n{1}\n{2}\n".format(str_, "=" * len(str_), warning) + +D_KEY = {"needed_module": header_format("Needed Modules"), + "documentation": header_format("Documentation")} + + +def get_url(path_module_rel): + if is_plugin(path_module_rel): + url = "http://github.com/LCPQ/quantum_package/tree/master/plugins" + elif is_module(path_module_rel): + url = "http://github.com/LCPQ/quantum_package/tree/master/src" + else: + print "{0} Is not a valide module nor plugin".format(path_module_rel) + sys.exit(1) + + return os.path.join(url, path_module_rel) + + +def fetch_splitted_data(d_readme, l_module_readme): + """Read the README.rst file and split it in strings: + * The documentation + * The needed modules + The result is given as a list of strings + """ + + sentinel = "@@$%&@@" + + for path_readme in l_module_readme: + with open(os.path.join(path_readme, "README.rst"), 'r') as f: + data = f.read() + + # Place sentinels + + for v in D_KEY.values(): + data = data.replace(v, sentinel + v) + + # Now Split data using the sentinels + d_readme[path_readme] = {"human": data.split(sentinel)[0]} + + +def update_needed(d_readme): + """Read the NEEDED_CHILDREN_MODULES file, and replace the data with it. + Create the links to the GitHub pages.""" + + header_image = ".. image:: tree_dependency.png" + + for path in d_readme: + + with open(os.path.join(path, 'NEEDED_CHILDREN_MODULES'), 'r') as f: + modules = f.read() + + if modules.strip(): + l_module = ['* `{0} <{1}>`_'.format(name, get_url(name)) + for name in modules.split()] + + l_module_section = [D_KEY["needed_module"], '', + header_image, '', + '\n'.join(l_module), '', ''] + else: + l_module_section = "" + + d_readme[path]["needed_module"] = "\n".join(l_module_section) + + +def extract_doc(root_module, provider): + """Extracts the documentation contained in IRPF90_man file""" + + path = os.path.join(root_module, "IRPF90_man/%s.l" % (provider)) + with open(path, 'r') as f: + l_line = f.readlines() + + result = [] + inside = False + for line in l_line: + if not inside: + inside = line.startswith(".SH Description") + else: + if line.startswith(".SH"): + break + result.append(" {0}".format(line.strip())) + + if not result: + result = [" Undocumented"] + + return "\n".join(result) + "\n" + + +def update_documentation(d_readmen, root_module): + """Reads the BEGIN_DOC ... END_DOC blocks and builds the documentation""" + + IRP_info = namedtuple('IRP_info', ["module", "file", "provider", "line"]) + + # If the file does not exist, don't do anything + path = os.path.join(root_module, "tags") + + with open(path, 'r') as f: + dump = f.readlines() + + d_info = defaultdict(list) + + for i in dump: + # i = + # output_cpu_time_0 Ezfio_files/output.irp.f 2 + provider, irp_file_raw, ligne = i.split() + + for path in d_readme: + + if root_module == path and "/" not in irp_file_raw: + d_info[path].append(IRP_info(os.path.basename(path), + irp_file_raw, + provider, + ligne)) + + elif "/" in irp_file_raw and os.path.dirname(irp_file_raw) in path: + + module, irp_file = os.path.split(irp_file_raw) + d_info[path].append(IRP_info(module, irp_file, provider, ligne)) + + for path in d_readme: + + l_doc = [] + + for irp in d_info[path]: + + url = os.path.join(get_url(os.path.basename(path)), irp.file) + doc = extract_doc(root_module, irp.provider) + + l_doc += ["`{0} <{1}#L{2}>`_".format(irp.provider, url, irp.line), + doc, + ""] + + l_doc_section = [D_KEY["documentation"], '', + "\n".join(l_doc)] + + d_readme[path]["documentation"] = "\n".join(l_doc_section) + +if __name__ == '__main__': + arguments = docopt(__doc__) + + if arguments["--root_module"]: + root_module = os.path.realpath(arguments["--root_module"]) + else: + root_module = os.getcwd() + + if not arguments[""]: + l_module_readme = [os.path.join(os.getcwd())] + else: + l_module_readme = arguments[""] + + # d[Path] ={humain, needed_module, documentation} + d_readme = defaultdict(dict) + + try: + fetch_splitted_data(d_readme, l_module_readme) + except IOError: + print l_module_readme, "is not a module and/or", + print "have not a `README.rst` file inside" + print "Abort..." + sys.exit(1) + + update_needed(d_readme) + update_documentation(d_readme, root_module) + + for path, d in d_readme.iteritems(): + + with open(os.path.join(path, "README.rst"), 'w') as f: + for k in ["human", + "needed_module", + "documentation"]: + + f.write(d[k]) diff --git a/scripts/module/update_README.py b/scripts/module/update_README.py deleted file mode 100755 index 51751102..00000000 --- a/scripts/module/update_README.py +++ /dev/null @@ -1,191 +0,0 @@ -#!/usr/bin/env python -"""Updates the README.rst file as the include directive is disabled on GitHub.""" -__date__ = "Thu Apr 3 23:06:18 CEST 2014" -__author__ = "Anthony Scemama & TApplencourt " - -README = "README.rst" -Assum_key = "Assumptions\n===========\n" -Needed_key = "Needed Modules\n==============\n" -Doc_key = "Documentation\n=============\n" -Sentinel = "@@$%&@@" -URL = "http://github.com/LCPQ/quantum_package/tree/master/src/" - -import os -import subprocess -from collections import namedtuple -import sys - -""" -NEED to call in a module -First arg can be the root parent -""" -try: - ROOT_module = os.path.realpath(sys.argv[1]) -except: - ROOT_module = os.getcwd() - -if ROOT_module != os.getcwd(): - change = True -else: - change = False - -MODULE_NAME = os.path.basename(os.getcwd()) - - -header = """ -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -""" - - -def fetch_splitted_data(): - """Read the README.rst file and split it in strings: - * The documentation - * The needed modules - The result is given as a list of strings - """ - - try: - with open(README, 'r') as f: - data = f.read() - except IOError: - return [] - - # Place sentinels - data = data.replace(Doc_key, Sentinel + Doc_key) - data = data.replace(Needed_key, Sentinel + Needed_key) - - # Now Split data using the sentinels - result = data.split(Sentinel) - - return result - - -def update_needed(data): - """Read the NEEDED_CHILDREN_MODULES file, and replace the data with it. - Create the links to the GitHub pages.""" - - with open('NEEDED_CHILDREN_MODULES', 'r') as f: - modules = f.read() - - header_image = ".. image:: tree_dependency.png\n\n" - - if modules.strip(): - modules = ['* `{0} <{1}>`_'.format(name, os.path.join(URL, name)) - for name in modules.split()] - modules = "\n".join(modules) - modules = Needed_key + header + header_image + modules + '\n\n' - - has_modules = False - for i in range(len(data)): - if data[i].startswith(Needed_key): - has_modules = True - data[i] = modules - - if not has_modules: - data.append(modules) - - return data - - -def extract_doc(item): - """Extracts the documentation contained in IRPF90_man file""" - - path = os.path.join(ROOT_module, "IRPF90_man/%s.l" % (item)) - with open(path, 'r') as f: - l_line = f.readlines() - - result = [] - inside = False - for line in l_line: - if not inside: - inside = line.startswith(".SH Description") - else: - if line.startswith(".SH"): - break - result.append(" {0}".format(line.strip())) - - if not result: - result = [" Undocumented"] - - return "\n".join(result) + '\n' - - -def update_documentation(data): - """Reads the BEGIN_DOC ... END_DOC blocks and builds the documentation""" - - IRP_info = namedtuple('IRP_info', ["name", "file", "line"]) - - # If the file does not exist, don't do anything - - path = os.path.join(ROOT_module, "tags") - - with open(path, 'r') as f: - dump = f.readlines() - - l_info = [] - for i in dump: - name, f, ligne = i.split() - - if not change and "/" not in i: - l_info.append(IRP_info(name, f, ligne)) - elif change and MODULE_NAME in i: - l_info.append(IRP_info(name, f.split("/")[-1], ligne)) - - l_line = [] - - for irp in l_info: - url = os.path.join(URL, MODULE_NAME, irp.file) - doc = extract_doc(irp.name) - - l_line += ["`{0} <{1}#L{2}>`_".format(irp.name, url, irp.line), doc, - ""] - - documentation = Doc_key + header + "\n".join(l_line) - - has_doc = False - for i in range(len(data)): - if data[i].startswith(Doc_key): - has_doc = True - data[i] = documentation - - if not has_doc: - data.append(documentation) - - return data - - -def git_add(): - """Executes: - git add README.rst - throw an error if git is not precent""" - - try: - # pipe output to /dev/null for silence - null = open("/dev/null", "w") - subprocess.Popen("git add README.rst", stdout=null, stderr=null) - null.close() - - except OSError: - raise - - -def main(): - data = fetch_splitted_data() - - data = update_documentation(data) - data = update_needed(data) - output = ''.join(data) - - with open(README, 'w') as f: - f.write(output) - - try: - git_add() - except OSError: - pass - - -if __name__ == '__main__': - main() 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/README.rst b/src/AO_Basis/README.rst index 4a1aa1ef..e0a487fe 100644 --- a/src/AO_Basis/README.rst +++ b/src/AO_Basis/README.rst @@ -33,19 +33,29 @@ Assumptions Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `Nuclei `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `Nuclei `_ Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `ao_coef `_ AO Coefficients, read from input. Those should not be used directly, as the MOs are expressed on the basis of **normalized** AOs. diff --git a/src/Bitmask/README.rst b/src/Bitmask/README.rst index 53ece385..4a128f43 100644 --- a/src/Bitmask/README.rst +++ b/src/Bitmask/README.rst @@ -37,19 +37,29 @@ Assumptions Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `MO_Basis `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `MO_Basis `_ Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `bitstring_to_hexa `_ Transform a bit string to a string in hexadecimal format for printing diff --git a/src/Determinants/README.rst b/src/Determinants/README.rst index 0cdf8673..62b035fc 100644 --- a/src/Determinants/README.rst +++ b/src/Determinants/README.rst @@ -29,9 +29,20 @@ Assumptions Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `Integrals_Monoelec `_ +* `Integrals_Bielec `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `Integrals_Monoelec `_ @@ -39,10 +50,10 @@ Needed Modules Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `a_operator `_ Needed for diag_H_mat_elem diff --git a/src/Determinants/slater_rules.irp.f b/src/Determinants/slater_rules.irp.f index 04fd983e..be847472 100644 --- a/src/Determinants/slater_rules.irp.f +++ b/src/Determinants/slater_rules.irp.f @@ -960,7 +960,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) @@ -1023,9 +1023,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/Electrons/README.rst b/src/Electrons/README.rst index 5c785e4e..d1c342b5 100644 --- a/src/Electrons/README.rst +++ b/src/Electrons/README.rst @@ -21,19 +21,29 @@ Assumptions Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `Ezfio_files `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `Ezfio_files `_ Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `elec_alpha_num `_ Numbers of electrons alpha ("up") diff --git a/src/Ezfio_files/README.rst b/src/Ezfio_files/README.rst index c97e6268..b843770a 100644 --- a/src/Ezfio_files/README.rst +++ b/src/Ezfio_files/README.rst @@ -170,3 +170,171 @@ Documentation Write a time stamp in the output for chronological reconstruction +Documentation +============= +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + +`ezfio_filename `_ + Name of EZFIO file. It is obtained from the QPACKAGE_INPUT environment + variable if it is set, or as the 1st argument of the command line. + + +`getunitandopen `_ + :f: + file name + .br + :mode: + 'R' : READ, UNFORMATTED + 'W' : WRITE, UNFORMATTED + 'r' : READ, FORMATTED + 'w' : WRITE, FORMATTED + 'a' : APPEND, FORMATTED + 'x' : READ/WRITE, FORMATTED + .br + + +`output_ao_basis `_ + Output file for AO_Basis + + +`output_bitmask `_ + Output file for Bitmask + + +`output_cas_sd `_ + Output file for CAS_SD + + +`output_cis `_ + Output file for CIS + + +`output_cisd `_ + Output file for CISD + + +`output_cisd_selected `_ + Output file for CISD_selected + + +`output_cpu_time_0 `_ + Initial CPU and wall times when printing in the output files + + +`output_determinants `_ + Output file for Determinants + + +`output_electrons `_ + Output file for Electrons + + +`output_ezfio_files `_ + Output file for Ezfio_files + + +`output_fcidump `_ + Output file for FCIdump + + +`output_full_ci `_ + Output file for Full_CI + + +`output_generators_cas `_ + Output file for Generators_CAS + + +`output_generators_full `_ + Output file for Generators_full + + +`output_hartree_fock `_ + Output file for Hartree_Fock + + +`output_integrals_bielec `_ + Output file for Integrals_Bielec + + +`output_integrals_monoelec `_ + Output file for Integrals_Monoelec + + +`output_mo_basis `_ + Output file for MO_Basis + + +`output_moguess `_ + Output file for MOGuess + + +`output_mrcc_cassd `_ + Output file for MRCC_CASSD + + +`output_mrcc_utils `_ + Output file for MRCC_Utils + + +`output_nuclei `_ + Output file for Nuclei + + +`output_perturbation `_ + Output file for Perturbation + + +`output_properties `_ + Output file for Properties + + +`output_pseudo `_ + Output file for Pseudo + + +`output_psiref_cas `_ + Output file for Psiref_CAS + + +`output_psiref_utils `_ + Output file for Psiref_Utils + + +`output_qmcchem `_ + Output file for QmcChem + + +`output_selectors_full `_ + Output file for Selectors_full + + +`output_singlerefmethod `_ + Output file for SingleRefMethod + + +`output_utils `_ + Output file for Utils + + +`output_wall_time_0 `_ + Initial CPU and wall times when printing in the output files + + +`write_bool `_ + Write an logical value in output + + +`write_double `_ + Write a double precision value in output + + +`write_int `_ + Write an integer value in output + + +`write_time `_ + Write a time stamp in the output for chronological reconstruction + diff --git a/src/Integrals_Bielec/README.rst b/src/Integrals_Bielec/README.rst index eed456c4..b71d9c0d 100644 --- a/src/Integrals_Bielec/README.rst +++ b/src/Integrals_Bielec/README.rst @@ -13,9 +13,20 @@ MO integral, use ``get_mo_bielec_integral(i,j,k,l,mo_integrals_map)`` or Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `Pseudo `_ +* `Bitmask `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `Pseudo `_ @@ -23,10 +34,10 @@ Needed Modules Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `add_integrals_to_map `_ Adds integrals to tha MO map according to some bitmask 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_Monoelec/README.rst b/src/Integrals_Monoelec/README.rst index 98ec1331..13aceb0e 100644 --- a/src/Integrals_Monoelec/README.rst +++ b/src/Integrals_Monoelec/README.rst @@ -1,9 +1,20 @@ Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `MO_Basis `_ +* `Pseudo `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `MO_Basis `_ @@ -11,10 +22,10 @@ Needed Modules Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `ao_deriv2_x `_ second derivatives matrix elements in the ao basis .. math:: diff --git a/src/MOGuess/README.rst b/src/MOGuess/README.rst index d10b1ef5..86f352a9 100644 --- a/src/MOGuess/README.rst +++ b/src/MOGuess/README.rst @@ -5,19 +5,29 @@ MOGuess Module Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `Integrals_Monoelec `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `Integrals_Monoelec `_ Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `ao_ortho_lowdin_coef `_ matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos diff --git a/src/MO_Basis/README.rst b/src/MO_Basis/README.rst index 5cbe0165..87df08b1 100644 --- a/src/MO_Basis/README.rst +++ b/src/MO_Basis/README.rst @@ -33,9 +33,20 @@ ASSUMPTONS Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `AO_Basis `_ +* `Electrons `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `AO_Basis `_ @@ -43,10 +54,10 @@ Needed Modules Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `ao_to_mo `_ Transform A from the AO basis to the MO basis diff --git a/src/Nuclei/README.rst b/src/Nuclei/README.rst index 9f0b15d9..bf7e6f52 100644 --- a/src/Nuclei/README.rst +++ b/src/Nuclei/README.rst @@ -9,9 +9,20 @@ The coordinates are expressed in atomic units. Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `Ezfio_files `_ +* `Utils `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `Ezfio_files `_ @@ -19,10 +30,10 @@ Needed Modules Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `element_name `_ Array of the name of element, sorted by nuclear charge (integer) diff --git a/src/Pseudo/README.rst b/src/Pseudo/README.rst index 84a555da..062a9465 100644 --- a/src/Pseudo/README.rst +++ b/src/Pseudo/README.rst @@ -5,19 +5,29 @@ Pseudo Module Needed Modules ============== -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. +.. image:: tree_dependency.png + +* `Nuclei `_ + +Needed Modules +============== +.. Do not edit this section It was auto-generated +.. by the `update_README.py` script. + + .. image:: tree_dependency.png * `Nuclei `_ Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `do_pseudo `_ Using pseudo potential integral of not diff --git a/src/Utils/README.rst b/src/Utils/README.rst index 104705a4..e3c36e71 100644 --- a/src/Utils/README.rst +++ b/src/Utils/README.rst @@ -6,10 +6,10 @@ Contains general purpose utilities. Documentation ============= - -.. Do not edit this section. It was auto-generated from the +.. Do not edit this section It was auto-generated .. by the `update_README.py` script. + `a_coef `_ Undocumented @@ -634,4 +634,3 @@ Documentation `write_git_log `_ Write the last git commit in file iunit. -