diff --git a/TODO b/TODO index 4f61ba96..699823ae 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,5 @@ # qpsh -* reconnaitre les executables en vert en mode qpsh -* qp set_file ls: cannot access '*/': No such file or directory -Problem with EMSL - - * Faire que le slave de Hartree-fock est le calcul des integrales AO en parallele # Web/doc @@ -60,6 +55,6 @@ Parler dans le papier de rPT2 # Toto Re-design de qp command -S^2 en simple precision dans davidson? - Doc: plugins et qp_plugins + +Ajouter les symetries dans devel diff --git a/docs/Makefile b/docs/Makefile index 7cb79bf2..054f8268 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -19,5 +19,8 @@ auto: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +clone: + git clone git@github.com:QuantumPackage/qp2.git --branch=documentation build diff --git a/docs/source/Makefile b/docs/source/Makefile index bf51e44b..5b601dac 100644 --- a/docs/source/Makefile +++ b/docs/source/Makefile @@ -1,3 +1,7 @@ +ifndef QP_ROOT +$(error "QP_ROOT is not defined. Source quantum_package.rc") +endif + default: ./auto_generate.py make -C ../ html diff --git a/docs/source/auto_generate.py b/docs/source/auto_generate.py index 874b5b8c..ff47c593 100755 --- a/docs/source/auto_generate.py +++ b/docs/source/auto_generate.py @@ -59,7 +59,8 @@ def generate_modules(abs_module, entities): try: b = subroutines[b] except KeyError: - print("Error: The program %s in %s does not have the same name as the file"% + print("Error: The program %s in %s does not have the same name as the file, \ +or you did not run ninja at the root."% (b, abs_module)) sys.exit(1) rst += [" * :ref:`%s`"%(b["name"])] diff --git a/docs/source/conf.py b/docs/source/conf.py index 914e55a6..939793cd 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -20,7 +20,7 @@ # -- Project information ----------------------------------------------------- project = 'Quantum Package' -copyright = '2018, A. Scemama, E. Giner' +copyright = '2019, A. Scemama, E. Giner' author = 'A. Scemama, E. Giner' # The short X.Y version @@ -86,7 +86,10 @@ pygments_style = None # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # +#import sphinx_rtd_theme html_theme = 'sphinx_rtd_theme' +#html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] +#html_baseurl = 'doc/' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the diff --git a/docs/source/modules/ao_two_e_erf_ints.rst b/docs/source/modules/ao_two_e_erf_ints.rst index 40682229..4e35de17 100644 --- a/docs/source/modules/ao_two_e_erf_ints.rst +++ b/docs/source/modules/ao_two_e_erf_ints.rst @@ -462,6 +462,11 @@ Subroutines / functions File : :file:`ao_two_e_erf_ints/map_integrals_erf.irp.f` + .. code:: fortran + + subroutine clear_ao_erf_map + + Frees the memory of the |AO| map Needs: @@ -833,6 +838,11 @@ Subroutines / functions File : :file:`ao_two_e_erf_ints/routines_save_integrals_erf.irp.f` + .. code:: fortran + + subroutine save_erf_two_e_integrals_ao + + Needs: @@ -865,6 +875,11 @@ Subroutines / functions File : :file:`ao_two_e_erf_ints/routines_save_integrals_erf.irp.f` + .. code:: fortran + + subroutine save_erf_two_e_ints_ao_into_ints_ao + + Needs: diff --git a/docs/source/modules/ao_two_e_ints.rst b/docs/source/modules/ao_two_e_ints.rst index ad1efca4..9121ed30 100644 --- a/docs/source/modules/ao_two_e_ints.rst +++ b/docs/source/modules/ao_two_e_ints.rst @@ -727,6 +727,11 @@ Subroutines / functions File : :file:`ao_two_e_ints/map_integrals.irp.f` + .. code:: fortran + + subroutine clear_ao_map + + Frees the memory of the AO map Needs: diff --git a/docs/source/modules/becke_numerical_grid.rst b/docs/source/modules/becke_numerical_grid.rst index 2b1fbb79..5f97851d 100644 --- a/docs/source/modules/becke_numerical_grid.rst +++ b/docs/source/modules/becke_numerical_grid.rst @@ -259,6 +259,7 @@ Providers :columns: 3 * :c:data:`final_grid_points` + * :c:data:`n_points_final_grid` .. c:var:: final_weight_at_r_vector @@ -346,7 +347,6 @@ Providers :columns: 3 * :c:data:`final_grid_points` - * :c:data:`n_points_final_grid` * :c:data:`one_e_dm_alpha_in_r` * :c:data:`weight_at_r` @@ -524,7 +524,7 @@ Providers .. hlist:: :columns: 3 - * :c:data:`grid_points_per_atom` + * :c:data:`final_weight_at_r` * :c:data:`n_points_radial_grid` * :c:data:`nucl_num` @@ -772,6 +772,11 @@ Subroutines / functions File : :file:`becke_numerical_grid/example.irp.f` + .. code:: fortran + + subroutine example_becke_numerical_grid + + subroutine that illustrates the main features available in becke_numerical_grid Needs: diff --git a/docs/source/modules/bitmask.rst b/docs/source/modules/bitmask.rst index 5d23a678..530eb096 100644 --- a/docs/source/modules/bitmask.rst +++ b/docs/source/modules/bitmask.rst @@ -38,6 +38,84 @@ For an example of how to use the bitmaks, see the file :file:`example.irp.f`. Providers --------- +.. c:var:: act_bitmask + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + + + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` + * :c:data:`mo_num` + * :c:data:`n_core_orb` + * :c:data:`n_int` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` + * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` + + .. c:var:: cas_bitmask @@ -70,9 +148,6 @@ Providers :columns: 3 * :c:data:`closed_shell_ref_bitmask` - * :c:data:`inact_bitmask` - * :c:data:`list_act` - * :c:data:`n_act_orb` * :c:data:`psi_cas` * :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_cas_inact_bitmask` @@ -104,26 +179,59 @@ Providers .. c:var:: core_bitmask - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) integer(bit_kind), allocatable :: core_bitmask (N_int,2) - integer :: n_core_orb + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) - Core + deleted orbitals bitmask + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`full_ijkl_bitmask` - * :c:data:`inact_bitmask` - * :c:data:`mpi_master` + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` + * :c:data:`mo_num` + * :c:data:`n_core_orb` * :c:data:`n_int` - * :c:data:`reunion_of_cas_inact_bitmask` Needed by: @@ -137,10 +245,13 @@ Providers * :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`fock_matrix_mo` * :c:data:`inact_virt_bitmask` - * :c:data:`list_core` - * :c:data:`n_core_orb_allocate` - * :c:data:`pt2_f` + * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` .. c:var:: core_inact_act_bitmask_4 @@ -188,12 +299,249 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` +.. c:var:: del_bitmask + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + + + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` + * :c:data:`mo_num` + * :c:data:`n_core_orb` + * :c:data:`n_int` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` + * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` + + +.. c:var:: dim_list_act_orb + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer :: dim_list_core_orb + integer :: dim_list_inact_orb + integer :: dim_list_virt_orb + integer :: dim_list_act_orb + integer :: dim_list_del_orb + + + dimensions for the allocation of list_inact, list_virt, list_core and list_act + it is at least 1 + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`n_core_orb` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`list_inact` + + +.. c:var:: dim_list_core_orb + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer :: dim_list_core_orb + integer :: dim_list_inact_orb + integer :: dim_list_virt_orb + integer :: dim_list_act_orb + integer :: dim_list_del_orb + + + dimensions for the allocation of list_inact, list_virt, list_core and list_act + it is at least 1 + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`n_core_orb` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`list_inact` + + +.. c:var:: dim_list_del_orb + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer :: dim_list_core_orb + integer :: dim_list_inact_orb + integer :: dim_list_virt_orb + integer :: dim_list_act_orb + integer :: dim_list_del_orb + + + dimensions for the allocation of list_inact, list_virt, list_core and list_act + it is at least 1 + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`n_core_orb` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`list_inact` + + +.. c:var:: dim_list_inact_orb + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer :: dim_list_core_orb + integer :: dim_list_inact_orb + integer :: dim_list_virt_orb + integer :: dim_list_act_orb + integer :: dim_list_del_orb + + + dimensions for the allocation of list_inact, list_virt, list_core and list_act + it is at least 1 + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`n_core_orb` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`list_inact` + + +.. c:var:: dim_list_virt_orb + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer :: dim_list_core_orb + integer :: dim_list_inact_orb + integer :: dim_list_virt_orb + integer :: dim_list_act_orb + integer :: dim_list_del_orb + + + dimensions for the allocation of list_inact, list_virt, list_core and list_act + it is at least 1 + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`n_core_orb` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`list_inact` + + .. c:var:: full_ijkl_bitmask @@ -221,7 +569,6 @@ Providers :columns: 3 * :c:data:`cas_bitmask` - * :c:data:`core_bitmask` * :c:data:`fock_operator_closed_shell_ref_bitmask` * :c:data:`fock_wee_closed_shell` * :c:data:`full_ijkl_bitmask_4` @@ -344,7 +691,6 @@ Providers :columns: 3 * :c:data:`cas_bitmask` - * :c:data:`inact_bitmask` .. c:var:: hf_bitmask @@ -401,14 +747,25 @@ Providers .. c:var:: inact_bitmask - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) integer(bit_kind), allocatable :: virt_bitmask (N_int,2) - integer :: n_inact_orb - integer :: n_virt_orb + integer(bit_kind), allocatable :: del_bitmask (N_int,2) inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited @@ -417,16 +774,31 @@ Providers virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`cas_bitmask` - * :c:data:`generators_bitmask_restart` - * :c:data:`mpi_master` - * :c:data:`n_generators_bitmask_restart` + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` + * :c:data:`mo_num` + * :c:data:`n_core_orb` * :c:data:`n_int` Needed by: @@ -434,13 +806,16 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` * :c:data:`inact_virt_bitmask` - * :c:data:`list_inact` + * :c:data:`list_core_inact_act` * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_vv_from_ao` - * :c:data:`n_inact_orb_allocate` - * :c:data:`n_virt_orb_allocate` * :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask` @@ -465,8 +840,7 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` @@ -502,99 +876,58 @@ Providers .. c:var:: list_act - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer, allocatable :: list_act (n_act_orb) - integer, allocatable :: list_act_reverse (mo_num) - - - list_act(i) = index of the ith active orbital - - list_act_reverse : reverse list of active orbitals - list_act_reverse(i) = 0 ::> not an active - list_act_reverse(i) = k ::> IS the kth active orbital - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`cas_bitmask` - * :c:data:`mo_num` - * :c:data:`n_act_orb` - * :c:data:`n_int` - - Needed by: - - .. hlist:: - :columns: 3 - - * :c:data:`core_fock_operator` - * :c:data:`core_fock_operator_erf` - * :c:data:`eigenvectors_fock_matrix_mo` - * :c:data:`fock_matrix_mo` - - -.. c:var:: list_act_reverse - - - File : :file:`bitmask/bitmasks.irp.f` - - .. code:: fortran - - integer, allocatable :: list_act (n_act_orb) - integer, allocatable :: list_act_reverse (mo_num) - - - list_act(i) = index of the ith active orbital - - list_act_reverse : reverse list of active orbitals - list_act_reverse(i) = 0 ::> not an active - list_act_reverse(i) = k ::> IS the kth active orbital - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`cas_bitmask` - * :c:data:`mo_num` - * :c:data:`n_act_orb` - * :c:data:`n_int` - - Needed by: - - .. hlist:: - :columns: 3 - - * :c:data:`core_fock_operator` - * :c:data:`core_fock_operator_erf` - * :c:data:`eigenvectors_fock_matrix_mo` - * :c:data:`fock_matrix_mo` - - -.. c:var:: list_core - - - File : :file:`bitmask/bitmasks.irp.f` - - .. code:: fortran - - integer, allocatable :: list_core (n_core_orb) + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) - List of the core orbitals that are never excited in post CAS method + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`core_bitmask` + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` * :c:data:`mo_num` + * :c:data:`n_core_orb` * :c:data:`n_int` Needed by: @@ -608,30 +941,170 @@ Providers * :c:data:`core_fock_operator_erf` * :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` + * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` -.. c:var:: list_core_inact +.. c:var:: list_act_reverse - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer, allocatable :: list_core_inact (n_core_inact_orb) - integer, allocatable :: list_core_inact_reverse (mo_num) + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` * :c:data:`mo_num` - * :c:data:`n_core_inact_orb` + * :c:data:`n_core_orb` * :c:data:`n_int` - * :c:data:`reunion_of_core_inact_bitmask` + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` + * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` + + +.. c:var:: list_core + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + + + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` + * :c:data:`mo_num` + * :c:data:`n_core_orb` + * :c:data:`n_int` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` + * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` .. c:var:: list_core_inact_act @@ -682,50 +1155,61 @@ Providers -.. c:var:: list_core_inact_reverse - - - File : :file:`bitmask/bitmasks.irp.f` - - .. code:: fortran - - integer, allocatable :: list_core_inact (n_core_inact_orb) - integer, allocatable :: list_core_inact_reverse (mo_num) - - - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`mo_num` - * :c:data:`n_core_inact_orb` - * :c:data:`n_int` - * :c:data:`reunion_of_core_inact_bitmask` - - - .. c:var:: list_core_reverse - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer, allocatable :: list_core (n_core_orb) + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) - List of the core orbitals that are never excited in post CAS method + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`core_bitmask` + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` * :c:data:`mo_num` + * :c:data:`n_core_orb` * :c:data:`n_int` Needed by: @@ -739,21 +1223,202 @@ Providers * :c:data:`core_fock_operator_erf` * :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` + * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` + + +.. c:var:: list_del + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + + + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` + * :c:data:`mo_num` + * :c:data:`n_core_orb` + * :c:data:`n_int` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` + * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` + + +.. c:var:: list_del_reverse + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + + + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` + * :c:data:`mo_num` + * :c:data:`n_core_orb` + * :c:data:`n_int` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` + * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` .. c:var:: list_inact - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer, allocatable :: list_inact (n_inact_orb) - integer, allocatable :: list_virt (n_virt_orb) + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) integer, allocatable :: list_inact_reverse (mo_num) integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons @@ -764,14 +1429,21 @@ Providers list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`inact_bitmask` + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` * :c:data:`mo_num` + * :c:data:`n_core_orb` * :c:data:`n_int` Needed by: @@ -779,23 +1451,52 @@ Providers .. hlist:: :columns: 3 + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` .. c:var:: list_inact_reverse - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer, allocatable :: list_inact (n_inact_orb) - integer, allocatable :: list_virt (n_virt_orb) + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) integer, allocatable :: list_inact_reverse (mo_num) integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons @@ -806,14 +1507,21 @@ Providers list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`inact_bitmask` + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` * :c:data:`mo_num` + * :c:data:`n_core_orb` * :c:data:`n_int` Needed by: @@ -821,23 +1529,52 @@ Providers .. hlist:: :columns: 3 + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` .. c:var:: list_virt - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer, allocatable :: list_inact (n_inact_orb) - integer, allocatable :: list_virt (n_virt_orb) + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) integer, allocatable :: list_inact_reverse (mo_num) integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons @@ -848,14 +1585,21 @@ Providers list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`inact_bitmask` + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` * :c:data:`mo_num` + * :c:data:`n_core_orb` * :c:data:`n_int` Needed by: @@ -863,23 +1607,52 @@ Providers .. hlist:: :columns: 3 + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` .. c:var:: list_virt_reverse - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer, allocatable :: list_inact (n_inact_orb) - integer, allocatable :: list_virt (n_virt_orb) + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) integer, allocatable :: list_inact_reverse (mo_num) integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) + integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) + integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer(bit_kind), allocatable :: del_bitmask (N_int,2) + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals list_inact : List of the inactive orbitals which are supposed to be doubly excited in post CAS methods list_virt : List of vritual orbitals which are supposed to be recieve electrons @@ -890,14 +1663,21 @@ Providers list_virt_reverse : reverse list of virtual orbitals list_virt_reverse(i) = 0 ::> not an virtual list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`inact_bitmask` + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` * :c:data:`mo_num` + * :c:data:`n_core_orb` * :c:data:`n_int` Needed by: @@ -905,8 +1685,20 @@ Providers .. hlist:: :columns: 3 + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`inact_virt_bitmask` * :c:data:`list_core_inact_act` + * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`reunion_of_bitmask` + * :c:data:`reunion_of_cas_inact_bitmask` + * :c:data:`reunion_of_core_inact_bitmask` + * :c:data:`virt_bitmask_4` .. c:var:: mpi_bit_kind @@ -926,34 +1718,66 @@ Providers .. c:var:: n_act_orb - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran + integer :: n_core_orb + integer :: n_inact_orb integer :: n_act_orb + integer :: n_virt_orb + integer :: n_del_orb - number of active orbitals + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`cas_bitmask` + * :c:data:`mo_class` + * :c:data:`mo_num` * :c:data:`mpi_master` - * :c:data:`n_int` Needed by: .. hlist:: :columns: 3 + * :c:data:`core_energy` + * :c:data:`core_energy_erf` * :c:data:`core_fock_operator` * :c:data:`core_fock_operator_erf` + * :c:data:`dim_list_core_orb` * :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`fock_matrix_mo` - * :c:data:`list_act` + * :c:data:`list_inact` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`n_core_orb_allocate` + * :c:data:`n_inact_orb_allocate` + * :c:data:`n_virt_orb_allocate` + * :c:data:`pt2_f` .. c:var:: n_cas_bitmask @@ -1036,37 +1860,52 @@ Providers * :c:data:`n_int` * :c:data:`reunion_of_core_inact_bitmask` - Needed by: - - .. hlist:: - :columns: 3 - - * :c:data:`list_core_inact` .. c:var:: n_core_orb - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer(bit_kind), allocatable :: core_bitmask (N_int,2) integer :: n_core_orb + integer :: n_inact_orb + integer :: n_act_orb + integer :: n_virt_orb + integer :: n_del_orb - Core + deleted orbitals bitmask + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`full_ijkl_bitmask` - * :c:data:`inact_bitmask` + * :c:data:`mo_class` + * :c:data:`mo_num` * :c:data:`mpi_master` - * :c:data:`n_int` - * :c:data:`reunion_of_cas_inact_bitmask` Needed by: @@ -1077,13 +1916,15 @@ Providers * :c:data:`core_energy_erf` * :c:data:`core_fock_operator` * :c:data:`core_fock_operator_erf` + * :c:data:`dim_list_core_orb` * :c:data:`eigenvectors_fock_matrix_mo` * :c:data:`fock_matrix_mo` - * :c:data:`inact_virt_bitmask` - * :c:data:`list_core` + * :c:data:`list_inact` + * :c:data:`mo_two_e_integrals_vv_from_ao` * :c:data:`n_core_orb_allocate` + * :c:data:`n_inact_orb_allocate` + * :c:data:`n_virt_orb_allocate` * :c:data:`pt2_f` - * :c:data:`reunion_of_core_inact_bitmask` .. c:var:: n_core_orb_allocate @@ -1102,10 +1943,75 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` + * :c:data:`n_core_orb` +.. c:var:: n_del_orb + + + File : :file:`bitmask/core_inact_act_virt.irp.f` + + .. code:: fortran + + integer :: n_core_orb + integer :: n_inact_orb + integer :: n_act_orb + integer :: n_virt_orb + integer :: n_del_orb + + + inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + n_inact_orb : Number of inactive orbitals + virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`mo_class` + * :c:data:`mo_num` + * :c:data:`mpi_master` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`dim_list_core_orb` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` + * :c:data:`list_inact` + * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`n_core_orb_allocate` + * :c:data:`n_inact_orb_allocate` + * :c:data:`n_virt_orb_allocate` + * :c:data:`pt2_f` + + .. c:var:: n_generators_bitmask @@ -1164,20 +2070,20 @@ Providers :columns: 3 * :c:data:`generators_bitmask_restart` - * :c:data:`inact_bitmask` .. c:var:: n_inact_orb - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer(bit_kind), allocatable :: inact_bitmask (N_int,2) - integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer :: n_core_orb integer :: n_inact_orb + integer :: n_act_orb integer :: n_virt_orb + integer :: n_del_orb inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited @@ -1186,34 +2092,49 @@ Providers virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`cas_bitmask` - * :c:data:`generators_bitmask_restart` + * :c:data:`mo_class` + * :c:data:`mo_num` * :c:data:`mpi_master` - * :c:data:`n_generators_bitmask_restart` - * :c:data:`n_int` Needed by: .. hlist:: :columns: 3 - * :c:data:`core_bitmask` - * :c:data:`inact_virt_bitmask` + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`dim_list_core_orb` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` * :c:data:`list_inact` - * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`n_core_orb_allocate` * :c:data:`n_inact_orb_allocate` * :c:data:`n_virt_orb_allocate` - * :c:data:`reunion_of_bitmask` - * :c:data:`reunion_of_cas_inact_bitmask` - * :c:data:`reunion_of_core_inact_bitmask` - * :c:data:`virt_bitmask_4` + * :c:data:`pt2_f` .. c:var:: n_inact_orb_allocate @@ -1232,7 +2153,7 @@ Providers .. hlist:: :columns: 3 - * :c:data:`inact_bitmask` + * :c:data:`n_core_orb` @@ -1265,7 +2186,6 @@ Providers * :c:data:`ci_electronic_energy` * :c:data:`closed_shell_ref_bitmask` * :c:data:`coef_hf_selector` - * :c:data:`core_bitmask` * :c:data:`core_inact_act_bitmask_4` * :c:data:`degree_max_generators` * :c:data:`det_to_occ_pattern` @@ -1282,18 +2202,12 @@ Providers * :c:data:`h_matrix_all_dets` * :c:data:`h_matrix_cas` * :c:data:`hf_bitmask` - * :c:data:`inact_bitmask` * :c:data:`inact_virt_bitmask` - * :c:data:`list_act` - * :c:data:`list_core` - * :c:data:`list_core_inact` * :c:data:`list_core_inact_act` * :c:data:`list_inact` * :c:data:`max_degree_exc` - * :c:data:`mo_energy_expval` * :c:data:`mo_two_e_integrals_erf_in_map` * :c:data:`mo_two_e_integrals_in_map` - * :c:data:`n_act_orb` * :c:data:`n_cas_bitmask` * :c:data:`n_core_inact_orb` * :c:data:`n_generators_bitmask` @@ -1340,14 +2254,15 @@ Providers .. c:var:: n_virt_orb - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran - integer(bit_kind), allocatable :: inact_bitmask (N_int,2) - integer(bit_kind), allocatable :: virt_bitmask (N_int,2) + integer :: n_core_orb integer :: n_inact_orb + integer :: n_act_orb integer :: n_virt_orb + integer :: n_del_orb inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited @@ -1356,34 +2271,49 @@ Providers virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`cas_bitmask` - * :c:data:`generators_bitmask_restart` + * :c:data:`mo_class` + * :c:data:`mo_num` * :c:data:`mpi_master` - * :c:data:`n_generators_bitmask_restart` - * :c:data:`n_int` Needed by: .. hlist:: :columns: 3 - * :c:data:`core_bitmask` - * :c:data:`inact_virt_bitmask` + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`dim_list_core_orb` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` * :c:data:`list_inact` - * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`n_core_orb_allocate` * :c:data:`n_inact_orb_allocate` * :c:data:`n_virt_orb_allocate` - * :c:data:`reunion_of_bitmask` - * :c:data:`reunion_of_cas_inact_bitmask` - * :c:data:`reunion_of_core_inact_bitmask` - * :c:data:`virt_bitmask_4` + * :c:data:`pt2_f` .. c:var:: n_virt_orb_allocate @@ -1402,7 +2332,7 @@ Providers .. hlist:: :columns: 3 - * :c:data:`inact_bitmask` + * :c:data:`n_core_orb` @@ -1459,7 +2389,7 @@ Providers :columns: 3 * :c:data:`cas_bitmask` - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` @@ -1482,15 +2412,9 @@ Providers :columns: 3 * :c:data:`cas_bitmask` - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` - Needed by: - - .. hlist:: - :columns: 3 - - * :c:data:`core_bitmask` .. c:var:: reunion_of_core_inact_act_bitmask @@ -1541,8 +2465,7 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` Needed by: @@ -1550,7 +2473,6 @@ Providers .. hlist:: :columns: 3 - * :c:data:`list_core_inact` * :c:data:`n_core_inact_orb` * :c:data:`reunion_of_core_inact_act_bitmask` @@ -1580,14 +2502,25 @@ Providers .. c:var:: virt_bitmask - File : :file:`bitmask/bitmasks.irp.f` + File : :file:`bitmask/core_inact_act_virt.irp.f` .. code:: fortran + integer, allocatable :: list_inact (dim_list_inact_orb) + integer, allocatable :: list_virt (dim_list_virt_orb) + integer, allocatable :: list_inact_reverse (mo_num) + integer, allocatable :: list_virt_reverse (mo_num) + integer, allocatable :: list_del_reverse (mo_num) + integer, allocatable :: list_del (mo_num) + integer, allocatable :: list_core (dim_list_core_orb) + integer, allocatable :: list_core_reverse (mo_num) + integer, allocatable :: list_act (dim_list_act_orb) + integer, allocatable :: list_act_reverse (mo_num) + integer(bit_kind), allocatable :: core_bitmask (N_int,2) integer(bit_kind), allocatable :: inact_bitmask (N_int,2) + integer(bit_kind), allocatable :: act_bitmask (N_int,2) integer(bit_kind), allocatable :: virt_bitmask (N_int,2) - integer :: n_inact_orb - integer :: n_virt_orb + integer(bit_kind), allocatable :: del_bitmask (N_int,2) inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited @@ -1596,16 +2529,31 @@ Providers virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons in post CAS methods n_virt_orb : Number of virtual orbitals + list_inact : List of the inactive orbitals which are supposed to be doubly excited + in post CAS methods + list_virt : List of vritual orbitals which are supposed to be recieve electrons + in post CAS methods + list_inact_reverse : reverse list of inactive orbitals + list_inact_reverse(i) = 0 ::> not an inactive + list_inact_reverse(i) = k ::> IS the kth inactive + list_virt_reverse : reverse list of virtual orbitals + list_virt_reverse(i) = 0 ::> not an virtual + list_virt_reverse(i) = k ::> IS the kth virtual + list_act(i) = index of the ith active orbital + + list_act_reverse : reverse list of active orbitals + list_act_reverse(i) = 0 ::> not an active + list_act_reverse(i) = k ::> IS the kth active orbital Needs: .. hlist:: :columns: 3 - * :c:data:`cas_bitmask` - * :c:data:`generators_bitmask_restart` - * :c:data:`mpi_master` - * :c:data:`n_generators_bitmask_restart` + * :c:data:`dim_list_core_orb` + * :c:data:`mo_class` + * :c:data:`mo_num` + * :c:data:`n_core_orb` * :c:data:`n_int` Needed by: @@ -1613,13 +2561,16 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` + * :c:data:`core_energy` + * :c:data:`core_energy_erf` + * :c:data:`core_fock_operator` + * :c:data:`core_fock_operator_erf` + * :c:data:`eigenvectors_fock_matrix_mo` + * :c:data:`fock_matrix_mo` * :c:data:`inact_virt_bitmask` - * :c:data:`list_inact` + * :c:data:`list_core_inact_act` * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_vv_from_ao` - * :c:data:`n_inact_orb_allocate` - * :c:data:`n_virt_orb_allocate` * :c:data:`reunion_of_bitmask` * :c:data:`reunion_of_cas_inact_bitmask` * :c:data:`reunion_of_core_inact_bitmask` @@ -1642,7 +2593,7 @@ Providers .. hlist:: :columns: 3 - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` @@ -1694,14 +2645,9 @@ Subroutines / functions * :c:func:`add_integrals_to_map_no_exit_34` * :c:func:`add_integrals_to_map_three_indices` * :c:func:`create_microlist` - * :c:func:`diag_h_mat_elem_au0_h_au0` * :c:func:`example_bitmask` * :c:func:`getmobiles` - * :c:data:`list_act` - * :c:data:`list_core` - * :c:data:`list_core_inact` * :c:data:`list_core_inact_act` - * :c:data:`list_inact` * :c:data:`ref_bitmask_energy` @@ -1825,6 +2771,11 @@ Subroutines / functions File : :file:`bitmask/example.irp.f` + .. code:: fortran + + subroutine example_bitmask + + subroutine that illustrates the main features available in bitmask Needs: @@ -1832,14 +2783,10 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`list_act` - * :c:data:`inact_bitmask` - * :c:data:`mo_num` - * :c:data:`core_bitmask` - * :c:data:`n_act_orb` - * :c:data:`list_core` + * :c:data:`n_core_orb` * :c:data:`list_inact` * :c:data:`n_int` + * :c:data:`mo_num` Calls: @@ -1857,6 +2804,11 @@ Subroutines / functions File : :file:`bitmask/modify_bitmasks.irp.f` + .. code:: fortran + + subroutine initialize_bitmask_to_restart_ones + + Initialization of the generators_bitmask to the restart bitmask Needs: @@ -2026,7 +2978,7 @@ Subroutines / functions * :c:data:`cas_bitmask` * :c:data:`reunion_of_core_inact_bitmask` - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` @@ -2046,7 +2998,7 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` @@ -2107,6 +3059,7 @@ Subroutines / functions :columns: 3 * :c:data:`hf_bitmask` + * :c:data:`list_inact` .. c:function:: modify_bitmasks_for_hole: @@ -2249,7 +3202,7 @@ Subroutines / functions :columns: 3 * :c:data:`cas_bitmask` - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` @@ -2271,7 +3224,7 @@ Subroutines / functions :columns: 3 * :c:data:`cas_bitmask` - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`n_int` Calls: @@ -2319,6 +3272,11 @@ Subroutines / functions File : :file:`bitmask/modify_bitmasks.irp.f` + .. code:: fortran + + subroutine print_generators_bitmasks_holes + + Needs: @@ -2370,6 +3328,11 @@ Subroutines / functions File : :file:`bitmask/modify_bitmasks.irp.f` + .. code:: fortran + + subroutine print_generators_bitmasks_particles + + Needs: diff --git a/docs/source/modules/cipsi.rst b/docs/source/modules/cipsi.rst index 1a15b68c..3e0d1aef 100644 --- a/docs/source/modules/cipsi.rst +++ b/docs/source/modules/cipsi.rst @@ -158,6 +158,28 @@ Providers * :c:data:`pt2_e0_denominator` +.. c:var:: nthreads_pt2 + + + File : :file:`cipsi/environment.irp.f` + + .. code:: fortran + + integer :: nthreads_pt2 + + + Number of threads for Davidson + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`mpi_master` + * :c:data:`nproc` + + + .. c:function:: pt2_collector: @@ -285,8 +307,8 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` * :c:data:`elec_num` + * :c:data:`n_core_orb` * :c:data:`n_det_generators` * :c:data:`n_det_selectors` * :c:data:`n_states` @@ -429,8 +451,8 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` * :c:data:`elec_num` + * :c:data:`n_core_orb` * :c:data:`n_det_generators` * :c:data:`n_det_selectors` * :c:data:`n_states` @@ -811,6 +833,7 @@ Subroutines / functions * :c:data:`n_states` * :c:data:`n_int` * :c:data:`psi_det_hii` + * :c:data:`do_only_1h1p` * :c:data:`h0_type` * :c:data:`psi_det_generators` @@ -1097,6 +1120,11 @@ Subroutines / functions File : :file:`cipsi/slave_cipsi.irp.f` + .. code:: fortran + + subroutine provide_everything + + Needs: @@ -1354,6 +1382,11 @@ Subroutines / functions File : :file:`cipsi/cipsi.irp.f` + .. code:: fortran + + subroutine run_cipsi + + Selected Full Configuration Interaction with deterministic selection and stochastic PT2. @@ -1413,10 +1446,10 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_energy` + * :c:data:`ci_electronic_energy` * :c:data:`n_det` * :c:data:`psi_occ_pattern` * :c:data:`c0_weight` @@ -1425,7 +1458,6 @@ Subroutines / functions * :c:data:`psi_det` * :c:data:`psi_det_size` * :c:data:`psi_det_sorted_bit` - * :c:data:`psi_energy` * :c:data:`psi_occ_pattern` * :c:data:`pt2_stoch_istate` * :c:data:`state_average_weight` @@ -1539,6 +1571,11 @@ Subroutines / functions File : :file:`cipsi/slave_cipsi.irp.f` + .. code:: fortran + + subroutine run_slave_cipsi + + Helper program for distributed parallelism Needs: @@ -1573,8 +1610,7 @@ Subroutines / functions :columns: 3 * :c:data:`distributed_davidson` - * :c:data:`psi_energy` - * :c:data:`psi_energy` + * :c:data:`pt2_e0_denominator` * :c:data:`pt2_stoch_istate` * :c:data:`read_wf` * :c:data:`state_average_weight` @@ -1586,6 +1622,11 @@ Subroutines / functions File : :file:`cipsi/slave_cipsi.irp.f` + .. code:: fortran + + subroutine run_slave_main + + Needs: @@ -1600,15 +1641,13 @@ Subroutines / functions * :c:data:`pt2_stoch_istate` * :c:data:`n_states` * :c:data:`n_det` - * :c:data:`threshold_generators` * :c:data:`pt2_e0_denominator` * :c:data:`n_det_selectors` * :c:data:`n_det_generators` - * :c:data:`psi_energy` * :c:data:`psi_det` * :c:data:`n_states_diag` * :c:data:`zmq_context` - * :c:data:`psi_energy` + * :c:data:`threshold_generators` Called by: @@ -1637,8 +1676,7 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`psi_energy` - * :c:data:`psi_energy` + * :c:data:`pt2_e0_denominator` * :c:data:`pt2_stoch_istate` * :c:data:`state_average_weight` * :c:data:`threshold_generators` @@ -1649,6 +1687,11 @@ Subroutines / functions File : :file:`cipsi/stochastic_cipsi.irp.f` + .. code:: fortran + + subroutine run_stochastic_cipsi + + Selected Full Configuration Interaction with Stochastic selection and PT2. Needs: @@ -1706,10 +1749,10 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_energy` + * :c:data:`ci_electronic_energy` * :c:data:`n_det` * :c:data:`psi_occ_pattern` * :c:data:`c0_weight` @@ -1718,7 +1761,6 @@ Subroutines / functions * :c:data:`psi_det` * :c:data:`psi_det_size` * :c:data:`psi_det_sorted_bit` - * :c:data:`psi_energy` * :c:data:`psi_occ_pattern` * :c:data:`pt2_stoch_istate` * :c:data:`state_average_weight` @@ -1790,12 +1832,13 @@ Subroutines / functions * :c:data:`n_states` * :c:data:`n_det` * :c:data:`psi_bilinear_matrix_transp_values` - * :c:data:`psi_bilinear_matrix_values` + * :c:data:`elec_alpha_num` * :c:data:`n_det_selectors` * :c:data:`psi_bilinear_matrix_transp_values` * :c:data:`psi_bilinear_matrix_values` * :c:data:`n_int` * :c:data:`psi_det_generators` + * :c:data:`psi_bilinear_matrix_values` * :c:data:`psi_det_alpha_unique` * :c:data:`psi_det_sorted` * :c:data:`psi_det_sorted` @@ -2061,11 +2104,11 @@ Subroutines / functions * :c:data:`psi_selectors` * :c:data:`psi_bilinear_matrix_values` * :c:data:`psi_det_alpha_unique` + * :c:data:`pt2_e0_denominator` * :c:data:`pt2_n_teeth` * :c:data:`psi_selectors_coef_transp` * :c:data:`n_det` * :c:data:`s2_eig` - * :c:data:`n_det_selectors` * :c:data:`pt2_j` * :c:data:`mo_two_e_integrals_in_map` * :c:data:`psi_bilinear_matrix_transp_values` @@ -2074,7 +2117,7 @@ Subroutines / functions * :c:data:`nthreads_pt2` * :c:data:`psi_bilinear_matrix_values` * :c:data:`mo_one_e_integrals` - * :c:data:`pt2_e0_denominator` + * :c:data:`elec_alpha_num` * :c:data:`nproc` * :c:data:`psi_bilinear_matrix_columns_loc` * :c:data:`threshold_generators` diff --git a/docs/source/modules/davidson.rst b/docs/source/modules/davidson.rst index cc0d7073..b29d42ff 100644 --- a/docs/source/modules/davidson.rst +++ b/docs/source/modules/davidson.rst @@ -50,9 +50,9 @@ EZFIO parameters .. option:: disk_based_davidson - If |true|, disk space is used to store the vectors + If |true|, a memory-mapped file may be used to store the W and S2 vectors if not enough RAM is available - Default: False + Default: True .. option:: distributed_davidson @@ -79,51 +79,7 @@ Providers double precision, allocatable :: ci_electronic_energy (N_states_diag) double precision, allocatable :: ci_eigenvectors (N_det,N_states_diag) - double precision, allocatable :: ci_eigenvectors_s2 (N_states_diag) - - - Eigenvectors/values of the |CI| matrix - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`diag_algorithm` - * :c:data:`dressing_column_h` - * :c:data:`expected_s2` - * :c:data:`h_matrix_all_dets` - * :c:data:`mo_two_e_integrals_in_map` - * :c:data:`n_det` - * :c:data:`n_int` - * :c:data:`n_states` - * :c:data:`n_states_diag` - * :c:data:`nthreads_davidson` - * :c:data:`psi_coef` - * :c:data:`psi_det` - * :c:data:`s2_eig` - * :c:data:`s2_matrix_all_dets` - * :c:data:`s_z` - * :c:data:`threshold_davidson` - - Needed by: - - .. hlist:: - :columns: 3 - - * :c:data:`ci_energy` - - -.. c:var:: ci_eigenvectors_s2 - - - File : :file:`davidson/diagonalize_ci.irp.f` - - .. code:: fortran - - double precision, allocatable :: ci_electronic_energy (N_states_diag) - double precision, allocatable :: ci_eigenvectors (N_det,N_states_diag) - double precision, allocatable :: ci_eigenvectors_s2 (N_states_diag) + double precision, allocatable :: ci_s2 (N_states_diag) Eigenvectors/values of the |CI| matrix @@ -167,7 +123,7 @@ Providers double precision, allocatable :: ci_electronic_energy (N_states_diag) double precision, allocatable :: ci_eigenvectors (N_det,N_states_diag) - double precision, allocatable :: ci_eigenvectors_s2 (N_states_diag) + double precision, allocatable :: ci_s2 (N_states_diag) Eigenvectors/values of the |CI| matrix @@ -229,6 +185,50 @@ Providers +.. c:var:: ci_s2 + + + File : :file:`davidson/diagonalize_ci.irp.f` + + .. code:: fortran + + double precision, allocatable :: ci_electronic_energy (N_states_diag) + double precision, allocatable :: ci_eigenvectors (N_det,N_states_diag) + double precision, allocatable :: ci_s2 (N_states_diag) + + + Eigenvectors/values of the |CI| matrix + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`diag_algorithm` + * :c:data:`dressing_column_h` + * :c:data:`expected_s2` + * :c:data:`h_matrix_all_dets` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`n_det` + * :c:data:`n_int` + * :c:data:`n_states` + * :c:data:`n_states_diag` + * :c:data:`nthreads_davidson` + * :c:data:`psi_coef` + * :c:data:`psi_det` + * :c:data:`s2_eig` + * :c:data:`s2_matrix_all_dets` + * :c:data:`s_z` + * :c:data:`threshold_davidson` + + Needed by: + + .. hlist:: + :columns: 3 + + * :c:data:`ci_energy` + + .. c:var:: davidson_criterion @@ -535,7 +535,7 @@ Subroutines / functions .. code:: fortran - subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_st,N_st_diag,Nint,dressing_state,converged) + subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_st,N_st_diag_in,Nint,dressing_state,converged) Davidson diagonalization with specific diagonal elements of the H matrix @@ -555,7 +555,7 @@ Subroutines / functions N_st : Number of eigenstates - N_st_diag : Number of states in which H is diagonalized. Assumed > sze + N_st_diag_in : Number of states in which H is diagonalized. Assumed > sze Initial guess vectors are not necessarily orthonormal @@ -564,26 +564,29 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`davidson_sze_max` + * :c:data:`psi_bilinear_matrix_order_reverse` + * :c:data:`psi_bilinear_matrix_values` + * :c:data:`nthreads_davidson` + * :c:data:`psi_coef` * :c:data:`dressed_column_idx` * :c:data:`expected_s2` - * :c:data:`distributed_davidson` * :c:data:`s_z` - * :c:data:`psi_det_beta_unique` - * :c:data:`qp_max_mem` - * :c:data:`psi_bilinear_matrix_order_reverse` - * :c:data:`nuclear_repulsion` * :c:data:`n_det` - * :c:data:`nthreads_davidson` * :c:data:`dressing_column_h` - * :c:data:`only_expected_s2` - * :c:data:`psi_bilinear_matrix_values` - * :c:data:`n_int` - * :c:data:`nproc` + * :c:data:`ezfio_work_dir` + * :c:data:`davidson_sze_max` * :c:data:`state_following` * :c:data:`psi_det_alpha_unique` - * :c:data:`psi_coef` + * :c:data:`nuclear_repulsion` + * :c:data:`nproc` + * :c:data:`qp_max_mem` + * :c:data:`disk_based_davidson` * :c:data:`s2_eig` + * :c:data:`psi_det_beta_unique` + * :c:data:`only_expected_s2` + * :c:data:`distributed_davidson` + * :c:data:`n_states` + * :c:data:`n_int` Called by: @@ -597,6 +600,7 @@ Subroutines / functions .. hlist:: :columns: 3 + * :c:func:`c_f_pointer` * :c:func:`check_mem` * :c:func:`cpu_time` * :c:func:`davidson_converged` @@ -605,10 +609,13 @@ Subroutines / functions * :c:func:`h_s2_u_0_nstates_openmp` * :c:func:`h_s2_u_0_nstates_zmq` * :c:func:`lapack_diag` + * :c:func:`mmap` + * :c:func:`munmap` * :c:func:`normalize` * :c:func:`ortho_qr` * :c:func:`random_number` * :c:func:`resident_memory` + * :c:func:`sgemm` * :c:func:`wall_time` * :c:func:`write_double` * :c:func:`write_int` @@ -619,6 +626,7 @@ Subroutines / functions .. hlist:: :columns: 3 + * :c:data:`n_states_diag` * :c:data:`nthreads_davidson` @@ -674,6 +682,7 @@ Subroutines / functions .. hlist:: :columns: 3 + * :c:data:`n_states_diag` * :c:data:`nthreads_davidson` @@ -769,6 +778,7 @@ Subroutines / functions * :c:func:`davidson_slave_work` * :c:func:`end_zmq_push_socket` * :c:func:`end_zmq_to_qp_run_socket` + * :c:func:`sleep` .. c:function:: davidson_slave_inproc: @@ -872,6 +882,11 @@ Subroutines / functions File : :file:`davidson/diagonalize_ci.irp.f` + .. code:: fortran + + subroutine diagonalize_CI + + Replace the coefficients of the |CI| states by the coefficients of the eigenstates of the |CI| matrix. @@ -885,7 +900,6 @@ Subroutines / functions * :c:data:`n_states` * :c:data:`n_det` * :c:data:`ci_electronic_energy` - * :c:data:`psi_energy` * :c:data:`ci_energy` * :c:data:`ci_electronic_energy` @@ -903,12 +917,11 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_energy` + * :c:data:`ci_electronic_energy` * :c:data:`psi_coef` - * :c:data:`psi_energy` .. c:function:: h_s2_u_0_nstates_openmp: @@ -1314,6 +1327,13 @@ Subroutines / functions * :c:func:`new_parallel_job` * :c:func:`omp_set_nested` + Touches: + + .. hlist:: + :columns: 3 + + * :c:data:`n_states_diag` + .. c:function:: h_s2_u_0_two_e_nstates_openmp: @@ -1690,6 +1710,13 @@ Subroutines / functions * :c:func:`h_s2_u_0_nstates_openmp` * :c:func:`h_s2_u_0_nstates_zmq` + Touches: + + .. hlist:: + :columns: 3 + + * :c:data:`n_states_diag` + .. c:function:: u_0_h_u_0_two_e: diff --git a/docs/source/modules/determinants.rst b/docs/source/modules/determinants.rst index f6c32ab1..e6f1ddd7 100644 --- a/docs/source/modules/determinants.rst +++ b/docs/source/modules/determinants.rst @@ -726,33 +726,6 @@ Providers -.. c:var:: mo_energy_expval - - - File : :file:`determinants/mo_energy_expval.irp.f` - - .. code:: fortran - - double precision, allocatable :: mo_energy_expval (N_states,mo_num,2,2) - - - Third index is spin. - Fourth index is 1:creation, 2:annihilation - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`mo_num` - * :c:data:`n_det` - * :c:data:`n_int` - * :c:data:`n_states` - * :c:data:`psi_coef` - * :c:data:`psi_det` - - - .. c:var:: n_det @@ -794,7 +767,6 @@ Providers * :c:data:`h_apply_buffer_allocated` * :c:data:`h_matrix_all_dets` * :c:data:`max_degree_exc` - * :c:data:`mo_energy_expval` * :c:data:`n_det_generators` * :c:data:`n_det_selectors` * :c:data:`one_e_dm_mo_alpha` @@ -2180,7 +2152,6 @@ Providers * :c:data:`c0_weight` * :c:data:`ci_electronic_energy` * :c:data:`dressed_column_idx` - * :c:data:`mo_energy_expval` * :c:data:`psi_average_norm_contrib` * :c:data:`psi_bilinear_matrix_values` * :c:data:`psi_cas` @@ -2386,7 +2357,6 @@ Providers * :c:data:`diagonal_h_matrix_on_psi_det` * :c:data:`h_matrix_all_dets` * :c:data:`max_degree_exc` - * :c:data:`mo_energy_expval` * :c:data:`one_e_dm_mo_alpha` * :c:data:`psi_bilinear_matrix_values` * :c:data:`psi_cas` @@ -3802,41 +3772,6 @@ Subroutines / functions * :c:func:`get_d1` -.. c:function:: au0_h_au0: - - - File : :file:`determinants/mo_energy_expval.irp.f` - - .. code:: fortran - - subroutine au0_h_au0(energies,psi_in,psi_in_coef,ndet,dim_psi_coef) - - - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`n_states` - * :c:data:`n_int` - - Called by: - - .. hlist:: - :columns: 3 - - * :c:data:`mo_energy_expval` - - Calls: - - .. hlist:: - :columns: 3 - - * :c:func:`diag_h_mat_elem_au0_h_au0` - * :c:func:`i_h_j` - - .. c:function:: bitstring_to_list_ab: @@ -3867,6 +3802,7 @@ Subroutines / functions * :c:data:`fock_operator_closed_shell_ref_bitmask` * :c:data:`fock_wee_closed_shell` * :c:func:`get_mono_excitation_from_fock` + * :c:func:`get_occupation_from_dets` * :c:func:`i_h_j` * :c:func:`i_h_j_s2` * :c:func:`i_h_j_two_e` @@ -3974,6 +3910,11 @@ Subroutines / functions File : :file:`determinants/h_apply.irp.f` + .. code:: fortran + + subroutine copy_H_apply_buffer_to_wf + + Copies the H_apply buffer to psi_coef. After calling this subroutine, N_det, psi_det and psi_coef need to be touched @@ -4074,9 +4015,7 @@ Subroutines / functions * :c:func:`perturb_buffer_epstein_nesbet` * :c:func:`perturb_buffer_epstein_nesbet_2x2` * :c:func:`perturb_buffer_epstein_nesbet_2x2_no_ci_diag` - * :c:func:`perturb_buffer_h_core` * :c:func:`perturb_buffer_moller_plesset` - * :c:func:`perturb_buffer_moller_plesset_general` * :c:func:`perturb_buffer_qdpt` Calls: @@ -4107,17 +4046,13 @@ Subroutines / functions * :c:func:`perturb_buffer_by_mono_epstein_nesbet` * :c:func:`perturb_buffer_by_mono_epstein_nesbet_2x2` * :c:func:`perturb_buffer_by_mono_epstein_nesbet_2x2_no_ci_diag` - * :c:func:`perturb_buffer_by_mono_h_core` * :c:func:`perturb_buffer_by_mono_moller_plesset` - * :c:func:`perturb_buffer_by_mono_moller_plesset_general` * :c:func:`perturb_buffer_by_mono_qdpt` * :c:func:`perturb_buffer_dummy` * :c:func:`perturb_buffer_epstein_nesbet` * :c:func:`perturb_buffer_epstein_nesbet_2x2` * :c:func:`perturb_buffer_epstein_nesbet_2x2_no_ci_diag` - * :c:func:`perturb_buffer_h_core` * :c:func:`perturb_buffer_moller_plesset` - * :c:func:`perturb_buffer_moller_plesset_general` * :c:func:`perturb_buffer_qdpt` @@ -4141,17 +4076,13 @@ Subroutines / functions * :c:func:`perturb_buffer_by_mono_epstein_nesbet` * :c:func:`perturb_buffer_by_mono_epstein_nesbet_2x2` * :c:func:`perturb_buffer_by_mono_epstein_nesbet_2x2_no_ci_diag` - * :c:func:`perturb_buffer_by_mono_h_core` * :c:func:`perturb_buffer_by_mono_moller_plesset` - * :c:func:`perturb_buffer_by_mono_moller_plesset_general` * :c:func:`perturb_buffer_by_mono_qdpt` * :c:func:`perturb_buffer_dummy` * :c:func:`perturb_buffer_epstein_nesbet` * :c:func:`perturb_buffer_epstein_nesbet_2x2` * :c:func:`perturb_buffer_epstein_nesbet_2x2_no_ci_diag` - * :c:func:`perturb_buffer_h_core` * :c:func:`perturb_buffer_moller_plesset` - * :c:func:`perturb_buffer_moller_plesset_general` * :c:func:`perturb_buffer_qdpt` @@ -4228,9 +4159,7 @@ Subroutines / functions * :c:func:`diag_h_mat_elem_fock` * :c:func:`example_determinants` - * :c:func:`pt2_h_core` * :c:func:`pt2_moller_plesset` - * :c:func:`pt2_moller_plesset_general` .. c:function:: decode_exc_spin: @@ -4345,42 +4274,6 @@ Subroutines / functions * :c:func:`bitstring_to_list_ab` -.. c:function:: diag_h_mat_elem_au0_h_au0: - - - File : :file:`determinants/mo_energy_expval.irp.f` - - .. code:: fortran - - subroutine diag_H_mat_elem_au0_h_au0(det_in,Nint,hii) - - - Computes $\langle i|H|i \rangle$ for any determinant $|i\rangle$. - Used for wave functions with an additional electron. - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`mo_two_e_integrals_jj` - * :c:data:`mo_one_e_integrals` - - Called by: - - .. hlist:: - :columns: 3 - - * :c:func:`au0_h_au0` - - Calls: - - .. hlist:: - :columns: 3 - - * :c:func:`bitstring_to_list` - - .. c:function:: diag_h_mat_elem_fock: @@ -4522,6 +4415,11 @@ Subroutines / functions File : :file:`determinants/example.irp.f` + .. code:: fortran + + subroutine example_determinants + + subroutine that illustrates the main features available in determinants Needs: @@ -4553,6 +4451,11 @@ Subroutines / functions File : :file:`determinants/example.irp.f` + .. code:: fortran + + subroutine example_determinants_psi_det + + subroutine that illustrates the main features available in determinants using the psi_det/psi_coef Needs: @@ -4699,6 +4602,11 @@ Subroutines / functions File : :file:`determinants/spindeterminants.irp.f` + .. code:: fortran + + subroutine generate_all_alpha_beta_det_products + + Creates a wave function from all possible $\alpha \times \beta$ determinants Needs: @@ -5313,9 +5221,7 @@ Subroutines / functions * :c:func:`example_determinants` * :c:func:`get_phase` - * :c:func:`pt2_h_core` * :c:func:`pt2_moller_plesset` - * :c:func:`pt2_moller_plesset_general` Calls: @@ -5358,7 +5264,6 @@ Subroutines / functions * :c:data:`max_degree_exc` * :c:data:`psi_non_cas` * :c:func:`pt2_qdpt` - * :c:func:`repeat_all_e_corr` .. c:function:: get_excitation_degree_spin: @@ -5645,6 +5550,37 @@ Subroutines / functions * :c:data:`one_e_dm_mo_alpha` +.. c:function:: get_occupation_from_dets: + + + File : :file:`determinants/density_matrix.irp.f` + + .. code:: fortran + + subroutine get_occupation_from_dets(istate,occupation) + + + Returns the average occupation of the MOs + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`psi_coef` + * :c:data:`psi_det` + * :c:data:`n_int` + * :c:data:`n_det` + * :c:data:`mo_num` + + Calls: + + .. hlist:: + :columns: 3 + + * :c:func:`bitstring_to_list_ab` + + .. c:function:: get_phase: @@ -5774,9 +5710,7 @@ Subroutines / functions * :c:func:`perturb_buffer_epstein_nesbet` * :c:func:`perturb_buffer_epstein_nesbet_2x2` * :c:func:`perturb_buffer_epstein_nesbet_2x2_no_ci_diag` - * :c:func:`perturb_buffer_h_core` * :c:func:`perturb_buffer_moller_plesset` - * :c:func:`perturb_buffer_moller_plesset_general` * :c:func:`perturb_buffer_qdpt` Calls: @@ -5814,7 +5748,6 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:func:`au0_h_au0` * :c:data:`coef_hf_selector` * :c:func:`example_determinants` * :c:func:`get_d0` @@ -6191,7 +6124,6 @@ Subroutines / functions * :c:func:`pt2_dummy` * :c:func:`pt2_epstein_nesbet` * :c:func:`pt2_moller_plesset` - * :c:func:`pt2_moller_plesset_general` * :c:func:`pt2_qdpt` Calls: @@ -6333,6 +6265,11 @@ Subroutines / functions File : :file:`determinants/occ_pattern.irp.f` + .. code:: fortran + + subroutine make_s2_eigenfunction + + Needs: @@ -6652,6 +6589,11 @@ Subroutines / functions File : :file:`determinants/example.irp.f` + .. code:: fortran + + subroutine routine_example_psi_det + + subroutine that illustrates the main features available in determinants using many determinants Needs: @@ -6750,6 +6692,11 @@ Subroutines / functions File : :file:`determinants/density_matrix.irp.f` + .. code:: fortran + + subroutine save_natural_mos + + Save natural orbitals, obtained by diagonalization of the one-body density matrix in the |MO| basis @@ -6781,6 +6728,11 @@ Subroutines / functions File : :file:`determinants/determinants.irp.f` + .. code:: fortran + + subroutine save_ref_determinant + + Needs: @@ -6810,6 +6762,11 @@ Subroutines / functions File : :file:`determinants/determinants.irp.f` + .. code:: fortran + + subroutine save_wavefunction + + Save the wave function into the |EZFIO| file Needs: @@ -6957,6 +6914,11 @@ Subroutines / functions File : :file:`determinants/determinants.irp.f` + .. code:: fortran + + subroutine save_wavefunction_unsorted + + Save the wave function into the |EZFIO| file Needs: @@ -6983,6 +6945,11 @@ Subroutines / functions File : :file:`determinants/density_matrix.irp.f` + .. code:: fortran + + subroutine set_natural_mos + + Set natural orbitals, obtained by diagonalization of the one-body density matrix in the |MO| basis @@ -7247,6 +7214,11 @@ Subroutines / functions File : :file:`determinants/spindeterminants.irp.f` + .. code:: fortran + + subroutine write_spindeterminants + + Needs: diff --git a/docs/source/modules/ezfio_files.rst b/docs/source/modules/ezfio_files.rst index a23ade93..18cae0b6 100644 --- a/docs/source/modules/ezfio_files.rst +++ b/docs/source/modules/ezfio_files.rst @@ -138,6 +138,7 @@ Providers * :c:data:`pt2_iterations` * :c:data:`pt2_max` * :c:data:`pt2_relative_error` + * :c:data:`qp_stop_filename` * :c:data:`read_wf` * :c:data:`s2_eig` * :c:data:`scf_algorithm` @@ -171,6 +172,20 @@ Providers +.. c:var:: file_lock + + + File : :file:`ezfio_files/lock.irp.f` + + .. code:: fortran + + integer(omp_lock_kind) :: file_lock + + + OpenMP Lock for I/O + + + .. c:var:: output_cpu_time_0 @@ -389,6 +404,75 @@ Providers * :c:data:`used_weight` +.. c:var:: qp_kill_filename + + + File : :file:`ezfio_files/qp_stop.irp.f` + + .. code:: fortran + + character*(128) :: qp_stop_filename + character*(128) :: qp_kill_filename + integer :: qp_stop_variable + + + Name of the file to check for qp stop + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`ezfio_filename` + + + +.. c:var:: qp_stop_filename + + + File : :file:`ezfio_files/qp_stop.irp.f` + + .. code:: fortran + + character*(128) :: qp_stop_filename + character*(128) :: qp_kill_filename + integer :: qp_stop_variable + + + Name of the file to check for qp stop + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`ezfio_filename` + + + +.. c:var:: qp_stop_variable + + + File : :file:`ezfio_files/qp_stop.irp.f` + + .. code:: fortran + + character*(128) :: qp_stop_filename + character*(128) :: qp_kill_filename + integer :: qp_stop_variable + + + Name of the file to check for qp stop + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`ezfio_filename` + + + Subroutines / functions ----------------------- @@ -416,6 +500,26 @@ Subroutines / functions +.. c:function:: qp_stop: + + + File : :file:`ezfio_files/qp_stop.irp.f` + + .. code:: fortran + + logical function qp_stop() + + + Checks if the qp_stop command was invoked for the clean termination of the program + + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`qp_stop_filename` + + .. c:function:: write_bool: @@ -498,13 +602,11 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`core_bitmask` * :c:func:`davidson_diag_hjj_sjj` - * :c:data:`inact_bitmask` * :c:func:`make_s2_eigenfunction` * :c:data:`mo_num` - * :c:data:`n_act_orb` * :c:data:`n_cas_bitmask` + * :c:data:`n_core_orb` * :c:data:`n_det` * :c:data:`n_det_generators` * :c:data:`n_det_selectors` diff --git a/docs/source/modules/fci.rst b/docs/source/modules/fci.rst index 44c42e0b..2631511b 100644 --- a/docs/source/modules/fci.rst +++ b/docs/source/modules/fci.rst @@ -80,25 +80,33 @@ Programs Providers --------- -.. c:var:: nthreads_pt2 +.. c:var:: do_ddci - File : :file:`fci/environment.irp.f` + File : :file:`fci/class.irp.f` .. code:: fortran - integer :: nthreads_pt2 + logical :: do_only_1h1p + logical :: do_ddci - Number of threads for Davidson + In the FCI case, all those are always false - Needs: - .. hlist:: - :columns: 3 + +.. c:var:: do_only_1h1p - * :c:data:`mpi_master` - * :c:data:`nproc` + + File : :file:`fci/class.irp.f` + + .. code:: fortran + + logical :: do_only_1h1p + logical :: do_ddci + + + In the FCI case, all those are always false diff --git a/docs/source/modules/hartree_fock.rst b/docs/source/modules/hartree_fock.rst index 37939090..9f818166 100644 --- a/docs/source/modules/hartree_fock.rst +++ b/docs/source/modules/hartree_fock.rst @@ -9,41 +9,14 @@ hartree_fock ============ -The Hartree-Fock module performs *Restricted* Hartree-Fock calculations (the -spatial part of the |MOs| is common for alpha and beta spinorbitals). +The :ref:`scf` program performs *Restricted* Hartree-Fock +calculations (the spatial part of the |MOs| is common for alpha and beta +spinorbitals). -The Hartree-Fock in an SCF and therefore is based on the ``scf_utils`` structure. -It performs the following actions: +The Hartree-Fock algorithm is a |SCF| and therefore is based on the +:ref:`module_scf_utils`` module. -#. Compute/Read all the one- and two-electron integrals, and store them in memory - -#. Check in the |EZFIO| database if there is a set of |MOs|. If there is, it - will read them as initial guess. Otherwise, it will create a guess. -#. Perform the |SCF| iterations - -The definition of the Fock matrix is in :file:`hartree_fock fock_matrix_hf.irp.f` -For the keywords related to the |SCF| procedure, see the ``scf_utils`` directory where you will find all options. -The main are: - -# :option:`scf_utils thresh_scf` - -# :option:`scf_utils level_shift` - -At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, if the calculation -crashes for any unexpected reason, the calculation can be restarted by running again -the |SCF| with the same |EZFIO| database. - -The `DIIS`_ algorithm is implemented, as well as the `level-shifting`_ method. -If the |SCF| does not converge, try again with a higher value of :option:`level_shift`. - -To start a calculation from scratch, the simplest way is to remove the -``mo_basis`` directory from the |EZFIO| database, and run the |SCF| again. - - - - -.. _DIIS: https://en.wikipedia.org/w/index.php?title=DIIS -.. _level-shifting: https://doi.org/10.1002/qua.560070407 +The Fock matrix is defined in :file:`hartree_fock fock_matrix_hf.irp.f`. @@ -338,6 +311,11 @@ Subroutines / functions File : :file:`hartree_fock/scf.irp.f` + .. code:: fortran + + subroutine create_guess + + Create a MO guess if no MOs are present in the EZFIO directory Needs: @@ -384,6 +362,11 @@ Subroutines / functions File : :file:`hartree_fock/scf.irp.f` + .. code:: fortran + + subroutine run + + Run SCF calculation Needs: diff --git a/docs/source/modules/iterations.rst b/docs/source/modules/iterations.rst index 5ead7f49..d8358b27 100644 --- a/docs/source/modules/iterations.rst +++ b/docs/source/modules/iterations.rst @@ -105,6 +105,11 @@ Subroutines / functions File : :file:`iterations/print_extrapolation.irp.f` + .. code:: fortran + + subroutine print_extrapolated_energy + + Print the extrapolated energy in the output Needs: diff --git a/docs/source/modules/kohn_sham_rs.rst b/docs/source/modules/kohn_sham_rs.rst index e0b485b9..02322304 100644 --- a/docs/source/modules/kohn_sham_rs.rst +++ b/docs/source/modules/kohn_sham_rs.rst @@ -445,6 +445,11 @@ Subroutines / functions File : :file:`rs_ks_scf.irp.f` + .. code:: fortran + + subroutine check_coherence_functional + + Needs: diff --git a/docs/source/modules/mo_basis.rst b/docs/source/modules/mo_basis.rst index f3cb6ef7..2038ca3a 100644 --- a/docs/source/modules/mo_basis.rst +++ b/docs/source/modules/mo_basis.rst @@ -286,9 +286,6 @@ Providers * :c:data:`fps_spf_matrix_mo` * :c:data:`full_ijkl_bitmask` * :c:data:`int_erf_3_index` - * :c:data:`list_act` - * :c:data:`list_core` - * :c:data:`list_core_inact` * :c:data:`list_core_inact_act` * :c:data:`list_inact` * :c:data:`mo_class` @@ -297,7 +294,6 @@ Providers * :c:data:`mo_coef_in_ao_ortho_basis` * :c:data:`mo_coef_transp` * :c:data:`mo_dipole_x` - * :c:data:`mo_energy_expval` * :c:data:`mo_integrals_cache_min` * :c:data:`mo_integrals_erf_cache_min` * :c:data:`mo_integrals_erf_map` @@ -317,6 +313,7 @@ Providers * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mo_two_e_integrals_jj` * :c:data:`mo_two_e_integrals_vv_from_ao` + * :c:data:`n_core_orb` * :c:data:`n_int` * :c:data:`one_e_dm_ao_alpha` * :c:data:`one_e_dm_dagger_mo_spin_index` @@ -528,6 +525,11 @@ Subroutines / functions File : :file:`mo_basis/track_orb.irp.f` + .. code:: fortran + + subroutine initialize_mo_coef_begin_iteration + + Initialize :c:data:`mo_coef_begin_iteration` to the current :c:data:`mo_coef` @@ -691,6 +693,11 @@ Subroutines / functions File : :file:`mo_basis/track_orb.irp.f` + .. code:: fortran + + subroutine reorder_core_orb + + routines that takes the current :c:data:`mo_coef` and reorder the core orbitals (see :c:data:`list_core` and :c:data:`n_core_orb`) according to the overlap with :c:data:`mo_coef_begin_iteration` Needs: @@ -698,13 +705,13 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`mo_coef` - * :c:data:`core_bitmask` * :c:data:`mo_num` - * :c:data:`ao_overlap` - * :c:data:`list_core` - * :c:data:`ao_num` * :c:data:`mo_coef_begin_iteration` + * :c:data:`mo_coef` + * :c:data:`ao_overlap` + * :c:data:`n_core_orb` + * :c:data:`ao_num` + * :c:data:`list_inact` Called by: @@ -727,6 +734,11 @@ Subroutines / functions File : :file:`mo_basis/utils.irp.f` + .. code:: fortran + + subroutine save_mos + + Needs: diff --git a/docs/source/modules/mo_guess.rst b/docs/source/modules/mo_guess.rst index e6bceeff..25c9acde 100644 --- a/docs/source/modules/mo_guess.rst +++ b/docs/source/modules/mo_guess.rst @@ -126,6 +126,11 @@ Subroutines / functions File : :file:`mo_guess/h_core_guess_routine.irp.f` + .. code:: fortran + + subroutine hcore_guess + + Produce `H_core` MO orbital Needs: diff --git a/docs/source/modules/mo_one_e_ints.rst b/docs/source/modules/mo_one_e_ints.rst index ec2991da..c882bb6f 100644 --- a/docs/source/modules/mo_one_e_ints.rst +++ b/docs/source/modules/mo_one_e_ints.rst @@ -529,6 +529,11 @@ Subroutines / functions File : :file:`mo_one_e_ints/orthonormalize.irp.f` + .. code:: fortran + + subroutine orthonormalize_mos + + Needs: diff --git a/docs/source/modules/mo_two_e_erf_ints.rst b/docs/source/modules/mo_two_e_erf_ints.rst index 0d472ef7..7e85039b 100644 --- a/docs/source/modules/mo_two_e_erf_ints.rst +++ b/docs/source/modules/mo_two_e_erf_ints.rst @@ -57,10 +57,10 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` - * :c:data:`list_core` + * :c:data:`list_inact` * :c:data:`mo_one_e_integrals` * :c:data:`mo_two_e_int_erf_jj` + * :c:data:`n_core_orb` * :c:data:`nuclear_repulsion` @@ -82,15 +82,13 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` - * :c:data:`list_act` - * :c:data:`list_core` + * :c:data:`list_inact` * :c:data:`mo_integrals_erf_cache` * :c:data:`mo_integrals_erf_cache_min` * :c:data:`mo_integrals_erf_map` * :c:data:`mo_num` * :c:data:`mo_two_e_integrals_erf_in_map` - * :c:data:`n_act_orb` + * :c:data:`n_core_orb` @@ -616,6 +614,11 @@ Subroutines / functions File : :file:`mo_two_e_erf_ints/mo_bi_integrals_erf.irp.f` + .. code:: fortran + + subroutine clear_mo_erf_map + + Frees the memory of the MO map Needs: @@ -911,6 +914,11 @@ Subroutines / functions File : :file:`mo_two_e_erf_ints/mo_bi_integrals_erf.irp.f` + .. code:: fortran + + subroutine provide_all_mo_integrals_erf + + Needs: @@ -929,6 +937,11 @@ Subroutines / functions File : :file:`mo_two_e_erf_ints/routines_save_integrals_erf.irp.f` + .. code:: fortran + + subroutine save_erf_two_e_integrals_mo + + Needs: @@ -961,6 +974,11 @@ Subroutines / functions File : :file:`mo_two_e_erf_ints/routines_save_integrals_erf.irp.f` + .. code:: fortran + + subroutine save_erf_two_e_ints_mo_into_ints_mo + + Needs: diff --git a/docs/source/modules/mo_two_e_ints.rst b/docs/source/modules/mo_two_e_ints.rst index edc4807f..bb860e59 100644 --- a/docs/source/modules/mo_two_e_ints.rst +++ b/docs/source/modules/mo_two_e_ints.rst @@ -154,10 +154,10 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` - * :c:data:`list_core` + * :c:data:`list_inact` * :c:data:`mo_one_e_integrals` * :c:data:`mo_two_e_integrals_jj` + * :c:data:`n_core_orb` * :c:data:`nuclear_repulsion` @@ -179,15 +179,13 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` - * :c:data:`list_act` - * :c:data:`list_core` + * :c:data:`list_inact` * :c:data:`mo_integrals_cache` * :c:data:`mo_integrals_cache_min` * :c:data:`mo_integrals_map` * :c:data:`mo_num` * :c:data:`mo_two_e_integrals_in_map` - * :c:data:`n_act_orb` + * :c:data:`n_core_orb` @@ -487,7 +485,7 @@ Providers * :c:data:`core_inact_act_bitmask_4` * :c:data:`ezfio_filename` * :c:data:`full_ijkl_bitmask_4` - * :c:data:`inact_bitmask` + * :c:data:`list_inact` * :c:data:`mo_class` * :c:data:`mo_coef` * :c:data:`mo_coef_transp` @@ -723,11 +721,11 @@ Providers * :c:data:`ao_two_e_integral_schwartz` * :c:data:`ao_two_e_integrals_in_map` * :c:data:`do_direct_integrals` - * :c:data:`inact_bitmask` * :c:data:`list_inact` * :c:data:`mo_coef` * :c:data:`mo_coef_transp` * :c:data:`mo_num` + * :c:data:`n_core_orb` @@ -760,11 +758,11 @@ Providers * :c:data:`ao_two_e_integral_schwartz` * :c:data:`ao_two_e_integrals_in_map` * :c:data:`do_direct_integrals` - * :c:data:`inact_bitmask` * :c:data:`list_inact` * :c:data:`mo_coef` * :c:data:`mo_coef_transp` * :c:data:`mo_num` + * :c:data:`n_core_orb` @@ -797,11 +795,11 @@ Providers * :c:data:`ao_two_e_integral_schwartz` * :c:data:`ao_two_e_integrals_in_map` * :c:data:`do_direct_integrals` - * :c:data:`inact_bitmask` * :c:data:`list_inact` * :c:data:`mo_coef` * :c:data:`mo_coef_transp` * :c:data:`mo_num` + * :c:data:`n_core_orb` @@ -957,6 +955,11 @@ Subroutines / functions File : :file:`mo_two_e_ints/mo_bi_integrals.irp.f` + .. code:: fortran + + subroutine clear_mo_map + + Frees the memory of the MO map Needs: diff --git a/docs/source/modules/mpi.rst b/docs/source/modules/mpi.rst index 8769f9fd..21608559 100644 --- a/docs/source/modules/mpi.rst +++ b/docs/source/modules/mpi.rst @@ -71,7 +71,6 @@ Providers * :c:data:`ao_two_e_integrals_in_map` * :c:data:`cas_bitmask` * :c:data:`ci_energy` - * :c:data:`core_bitmask` * :c:data:`correlation_energy_ratio_max` * :c:data:`data_energy_proj` * :c:data:`data_energy_var` @@ -91,7 +90,6 @@ Providers * :c:data:`frozen_orb_scf` * :c:data:`generators_bitmask` * :c:data:`generators_bitmask_restart` - * :c:data:`inact_bitmask` * :c:data:`io_ao_integrals_e_n` * :c:data:`io_ao_integrals_kinetic` * :c:data:`io_ao_integrals_overlap` @@ -116,8 +114,8 @@ Providers * :c:data:`mo_occ` * :c:data:`mo_two_e_integrals_in_map` * :c:data:`mu_erf` - * :c:data:`n_act_orb` * :c:data:`n_cas_bitmask` + * :c:data:`n_core_orb` * :c:data:`n_det` * :c:data:`n_det_generators` * :c:data:`n_det_iterations` diff --git a/docs/source/modules/perturbation.rst b/docs/source/modules/perturbation.rst index 211c219a..fb144639 100644 --- a/docs/source/modules/perturbation.rst +++ b/docs/source/modules/perturbation.rst @@ -393,41 +393,6 @@ Subroutines / functions * :c:func:`pt2_epstein_nesbet_2x2_no_ci_diag` -.. c:function:: perturb_buffer_by_mono_h_core: - - - File : :file:`perturbation/perturbation.irp.f_shell_13` - - .. code:: fortran - - subroutine perturb_buffer_by_mono_h_core(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy) - - - Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply - routine. - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`mo_num` - * :c:data:`psi_selectors` - * :c:data:`n_det` - * :c:data:`n_det_selectors` - * :c:data:`n_det_generators` - * :c:data:`psi_det_generators` - - Calls: - - .. hlist:: - :columns: 3 - - * :c:func:`create_minilist` - * :c:func:`create_minilist_find_previous` - * :c:func:`pt2_h_core` - - .. c:function:: perturb_buffer_by_mono_moller_plesset: @@ -463,41 +428,6 @@ Subroutines / functions * :c:func:`pt2_moller_plesset` -.. c:function:: perturb_buffer_by_mono_moller_plesset_general: - - - File : :file:`perturbation/perturbation.irp.f_shell_13` - - .. code:: fortran - - subroutine perturb_buffer_by_mono_moller_plesset_general(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy) - - - Applly pertubration ``moller_plesset_general`` to the buffer of determinants generated in the H_apply - routine. - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`mo_num` - * :c:data:`psi_selectors` - * :c:data:`n_det` - * :c:data:`n_det_selectors` - * :c:data:`n_det_generators` - * :c:data:`psi_det_generators` - - Calls: - - .. hlist:: - :columns: 3 - - * :c:func:`create_minilist` - * :c:func:`create_minilist_find_previous` - * :c:func:`pt2_moller_plesset_general` - - .. c:function:: perturb_buffer_by_mono_qdpt: @@ -677,42 +607,6 @@ Subroutines / functions * :c:func:`pt2_epstein_nesbet_2x2_no_ci_diag` -.. c:function:: perturb_buffer_h_core: - - - File : :file:`perturbation/perturbation.irp.f_shell_13` - - .. code:: fortran - - subroutine perturb_buffer_h_core(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy) - - - Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply - routine. - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`n_det_selectors` - * :c:data:`n_det_generators` - * :c:data:`psi_selectors` - * :c:data:`psi_det_generators` - * :c:data:`mo_num` - - Calls: - - .. hlist:: - :columns: 3 - - * :c:func:`create_microlist` - * :c:func:`create_minilist` - * :c:func:`create_minilist_find_previous` - * :c:func:`getmobiles` - * :c:func:`pt2_h_core` - - .. c:function:: perturb_buffer_moller_plesset: @@ -749,42 +643,6 @@ Subroutines / functions * :c:func:`pt2_moller_plesset` -.. c:function:: perturb_buffer_moller_plesset_general: - - - File : :file:`perturbation/perturbation.irp.f_shell_13` - - .. code:: fortran - - subroutine perturb_buffer_moller_plesset_general(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy) - - - Applly pertubration ``moller_plesset_general`` to the buffer of determinants generated in the H_apply - routine. - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`n_det_selectors` - * :c:data:`n_det_generators` - * :c:data:`psi_selectors` - * :c:data:`psi_det_generators` - * :c:data:`mo_num` - - Calls: - - .. hlist:: - :columns: 3 - - * :c:func:`create_microlist` - * :c:func:`create_minilist` - * :c:func:`create_minilist_find_previous` - * :c:func:`getmobiles` - * :c:func:`pt2_moller_plesset_general` - - .. c:function:: perturb_buffer_qdpt: @@ -824,7 +682,7 @@ Subroutines / functions .. c:function:: pt2_dummy: - File : :file:`perturbation/pt2_equations.irp.f_template_360` + File : :file:`perturbation/pt2_equations.irp.f_template_305` .. code:: fortran @@ -863,7 +721,7 @@ Subroutines / functions .. c:function:: pt2_epstein_nesbet: - File : :file:`perturbation/pt2_equations.irp.f_template_360` + File : :file:`perturbation/pt2_equations.irp.f_template_305` .. code:: fortran @@ -908,7 +766,7 @@ Subroutines / functions .. c:function:: pt2_epstein_nesbet_2x2: - File : :file:`perturbation/pt2_equations.irp.f_template_360` + File : :file:`perturbation/pt2_equations.irp.f_template_305` .. code:: fortran @@ -952,7 +810,7 @@ Subroutines / functions .. c:function:: pt2_epstein_nesbet_2x2_no_ci_diag: - File : :file:`perturbation/pt2_equations.irp.f_template_360` + File : :file:`perturbation/pt2_equations.irp.f_template_305` .. code:: fortran @@ -995,57 +853,10 @@ Subroutines / functions * :c:func:`i_h_psi` -.. c:function:: pt2_h_core: - - - File : :file:`perturbation/pert_single.irp.f` - - .. code:: fortran - - subroutine pt2_h_core(det_pert,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist) - - - compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution - - for the various N_st states. - - c_pert(i) = /( E(i) - ) - - e_2_pert(i) = ^2/( E(i) - ) - - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`n_det_selectors` - * :c:data:`ref_bitmask_energy` - * :c:data:`ref_bitmask` - * :c:data:`mo_one_e_integrals` - * :c:data:`n_int` - - Called by: - - .. hlist:: - :columns: 3 - - * :c:func:`perturb_buffer_by_mono_h_core` - * :c:func:`perturb_buffer_h_core` - - Calls: - - .. hlist:: - :columns: 3 - - * :c:func:`decode_exc` - * :c:func:`get_excitation` - - .. c:function:: pt2_moller_plesset: - File : :file:`perturbation/pt2_equations.irp.f_template_360` + File : :file:`perturbation/pt2_equations.irp.f_template_305` .. code:: fortran @@ -1090,57 +901,10 @@ Subroutines / functions * :c:func:`i_h_psi_minilist` -.. c:function:: pt2_moller_plesset_general: - - - File : :file:`perturbation/pt2_equations.irp.f_template_360` - - .. code:: fortran - - subroutine pt2_moller_plesset_general (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist) - - - Computes the standard Moller-Plesset perturbative first order coefficient and second - order energetic contribution for the various N_st states. - - `c_pert(i)` = $\frac{\langle i|H|\alpha \rangle}{\text{difference of orbital energies}}$. - - `e_2_pert(i)` = $\frac{\langle i|H|\alpha \rangle^2}{\text{difference of orbital energies}}$. - - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`mo_energy_expval` - * :c:data:`n_det_selectors` - * :c:data:`psi_selectors` - * :c:data:`psi_selectors_size` - * :c:data:`mo_num` - - Called by: - - .. hlist:: - :columns: 3 - - * :c:func:`perturb_buffer_by_mono_moller_plesset_general` - * :c:func:`perturb_buffer_moller_plesset_general` - - Calls: - - .. hlist:: - :columns: 3 - - * :c:func:`decode_exc` - * :c:func:`get_excitation` - * :c:func:`i_h_psi_minilist` - - .. c:function:: pt2_qdpt: - File : :file:`perturbation/pt2_equations.irp.f_template_360` + File : :file:`perturbation/pt2_equations.irp.f_template_305` .. code:: fortran @@ -1187,6 +951,11 @@ Subroutines / functions File : :file:`perturbation/selection.irp.f` + .. code:: fortran + + subroutine remove_small_contributions + + Remove determinants with small contributions. N_states is assumed to be provided. @@ -1220,42 +989,11 @@ Subroutines / functions .. hlist:: :columns: 3 - * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_energy` + * :c:data:`ci_electronic_energy` * :c:data:`n_det` * :c:data:`psi_coef` * :c:data:`psi_det` - * :c:data:`psi_energy` - - -.. c:function:: repeat_all_e_corr: - - - File : :file:`perturbation/pert_sc2.irp.f` - - .. code:: fortran - - double precision function repeat_all_e_corr(key_in) - - - - Needs: - - .. hlist:: - :columns: 3 - - * :c:data:`n_det_selectors` - * :c:data:`ref_bitmask` - * :c:data:`psi_selectors` - * :c:data:`coef_hf_selector` - * :c:data:`n_int` - - Calls: - - .. hlist:: - :columns: 3 - - * :c:func:`get_excitation_degree` diff --git a/docs/source/modules/scf_utils.rst b/docs/source/modules/scf_utils.rst index 8137b84a..5b06d6d0 100644 --- a/docs/source/modules/scf_utils.rst +++ b/docs/source/modules/scf_utils.rst @@ -173,17 +173,15 @@ Providers :columns: 3 * :c:data:`ao_num` - * :c:data:`core_bitmask` * :c:data:`elec_alpha_num` * :c:data:`elec_beta_num` * :c:data:`fock_matrix_mo` * :c:data:`frozen_orb_scf` * :c:data:`level_shift` - * :c:data:`list_act` - * :c:data:`list_core` + * :c:data:`list_inact` * :c:data:`mo_coef` * :c:data:`mo_num` - * :c:data:`n_act_orb` + * :c:data:`n_core_orb` @@ -294,16 +292,14 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` * :c:data:`elec_alpha_num` * :c:data:`elec_beta_num` * :c:data:`fock_matrix_mo_alpha` * :c:data:`fock_matrix_mo_beta` * :c:data:`frozen_orb_scf` - * :c:data:`list_act` - * :c:data:`list_core` + * :c:data:`list_inact` * :c:data:`mo_num` - * :c:data:`n_act_orb` + * :c:data:`n_core_orb` Needed by: @@ -345,16 +341,14 @@ Providers .. hlist:: :columns: 3 - * :c:data:`core_bitmask` * :c:data:`elec_alpha_num` * :c:data:`elec_beta_num` * :c:data:`fock_matrix_mo_alpha` * :c:data:`fock_matrix_mo_beta` * :c:data:`frozen_orb_scf` - * :c:data:`list_act` - * :c:data:`list_core` + * :c:data:`list_inact` * :c:data:`mo_num` - * :c:data:`n_act_orb` + * :c:data:`n_core_orb` Needed by: @@ -632,6 +626,11 @@ Subroutines / functions File : :file:`scf_utils/damping_scf.irp.f` + .. code:: fortran + + subroutine damping_SCF + + Needs: @@ -679,6 +678,11 @@ Subroutines / functions File : :file:`scf_utils/huckel.irp.f` + .. code:: fortran + + subroutine huckel_guess + + Build the MOs using the extended Huckel model Needs: @@ -724,6 +728,11 @@ Subroutines / functions File : :file:`scf_utils/roothaan_hall_scf.irp.f` + .. code:: fortran + + subroutine Roothaan_Hall_SCF + + Roothaan-Hall algorithm for SCF Hartree-Fock calculation Needs: diff --git a/docs/source/modules/tools.rst b/docs/source/modules/tools.rst index bf9657d5..dfe746cc 100644 --- a/docs/source/modules/tools.rst +++ b/docs/source/modules/tools.rst @@ -34,6 +34,11 @@ Subroutines / functions File : :file:`write_integrals_erf.irp.f` + .. code:: fortran + + subroutine routine + + Called by: @@ -58,6 +63,11 @@ Subroutines / functions File : :file:`print_e_conv.irp.f` + .. code:: fortran + + subroutine routine_e_conv + + routine called by :c:func:`print_e_conv` Needs: @@ -91,6 +101,11 @@ Subroutines / functions File : :file:`save_one_e_dm.irp.f` + .. code:: fortran + + subroutine routine_save_one_e_dm + + routine called by :c:func:`save_one_e_dm` Needs: diff --git a/docs/source/modules/utils.rst b/docs/source/modules/utils.rst index ac7b828e..d2c76ba2 100644 --- a/docs/source/modules/utils.rst +++ b/docs/source/modules/utils.rst @@ -2636,6 +2636,13 @@ Subroutines / functions Returns the current used memory in gigabytes used by the current process. + Needs: + + .. hlist:: + :columns: 3 + + * :c:data:`file_lock` + Called by: .. hlist:: @@ -2646,6 +2653,14 @@ Subroutines / functions * :c:func:`print_memory_usage` * :c:func:`zmq_pt2` + Calls: + + .. hlist:: + :columns: 3 + + * :c:func:`omp_set_lock` + * :c:func:`omp_unset_lock` + .. c:function:: rint: diff --git a/docs/source/modules/zmq.rst b/docs/source/modules/zmq.rst index 5a0979df..92a2fe6a 100644 --- a/docs/source/modules/zmq.rst +++ b/docs/source/modules/zmq.rst @@ -868,6 +868,11 @@ Subroutines / functions File : :file:`zmq/utils.irp.f` + .. code:: fortran + + subroutine reset_zmq_addresses + + Socket which pulls the results (2) Needs: @@ -891,6 +896,11 @@ Subroutines / functions File : :file:`zmq/utils.irp.f` + .. code:: fortran + + subroutine switch_qp_run_to_master + + Address of the master qp_run socket Example : tcp://130.120.229.139:12345 diff --git a/docs/source/programmers_guide/index_providers.rst b/docs/source/programmers_guide/index_providers.rst index a249d338..1b296fff 100644 --- a/docs/source/programmers_guide/index_providers.rst +++ b/docs/source/programmers_guide/index_providers.rst @@ -3,6 +3,7 @@ Index of Providers * :c:data:`abs_psi_coef_max` * :c:data:`abs_psi_coef_min` +* :c:data:`act_bitmask` * :c:data:`alpha_knowles` * :c:data:`angular_quadrature_points` * :c:data:`ao_cart_to_sphe_coef` @@ -136,9 +137,9 @@ Index of Providers * :c:data:`cas_bitmask` * :c:data:`center_of_mass` * :c:data:`ci_eigenvectors` -* :c:data:`ci_eigenvectors_s2` * :c:data:`ci_electronic_energy` * :c:data:`ci_energy` +* :c:data:`ci_s2` * :c:data:`closed_shell_ref_bitmask` * :c:data:`coef_hf_selector` * :c:data:`core_bitmask` @@ -159,6 +160,7 @@ Index of Providers * :c:data:`davidson_sze_max` * :c:data:`degree_max_generators` * :c:data:`degree_max_integration_lebedev` +* :c:data:`del_bitmask` * :c:data:`delta_e_per_selector` * :c:data:`density_for_dft` * :c:data:`det_alpha_norm` @@ -167,10 +169,17 @@ Index of Providers * :c:data:`dft_type` * :c:data:`diag_algorithm` * :c:data:`diagonal_h_matrix_on_psi_det` +* :c:data:`dim_list_act_orb` +* :c:data:`dim_list_core_orb` +* :c:data:`dim_list_del_orb` +* :c:data:`dim_list_inact_orb` +* :c:data:`dim_list_virt_orb` * :c:data:`disk_access_nuclear_repulsion` * :c:data:`disk_based_davidson` * :c:data:`distributed_davidson` +* :c:data:`do_ddci` * :c:data:`do_direct_integrals` +* :c:data:`do_only_1h1p` * :c:data:`do_pseudo` * :c:data:`do_pt2` * :c:data:`double_exc_bitmask` @@ -216,6 +225,7 @@ Index of Providers * :c:data:`ezfio_filename` * :c:data:`ezfio_work_dir` * :c:data:`fact_inv` +* :c:data:`file_lock` * :c:data:`fill_h_apply_buffer_selection` * :c:data:`final_grid_points` * :c:data:`final_weight_at_r` @@ -322,11 +332,11 @@ Index of Providers * :c:data:`list_act` * :c:data:`list_act_reverse` * :c:data:`list_core` -* :c:data:`list_core_inact` * :c:data:`list_core_inact_act` * :c:data:`list_core_inact_act_reverse` -* :c:data:`list_core_inact_reverse` * :c:data:`list_core_reverse` +* :c:data:`list_del` +* :c:data:`list_del_reverse` * :c:data:`list_inact` * :c:data:`list_inact_reverse` * :c:data:`list_virt` @@ -343,7 +353,6 @@ Index of Providers * :c:data:`mo_dipole_x` * :c:data:`mo_dipole_y` * :c:data:`mo_dipole_z` -* :c:data:`mo_energy_expval` * :c:data:`mo_guess_type` * :c:data:`mo_integrals_cache` * :c:data:`mo_integrals_cache_max` @@ -403,6 +412,7 @@ Index of Providers * :c:data:`n_core_inact_orb` * :c:data:`n_core_orb` * :c:data:`n_core_orb_allocate` +* :c:data:`n_del_orb` * :c:data:`n_det` * :c:data:`n_det_alpha_unique` * :c:data:`n_det_beta_unique` @@ -615,8 +625,11 @@ Index of Providers * :c:data:`pt2_u_0` * :c:data:`pt2_w` * :c:data:`pt2_w_t` +* :c:data:`qp_kill_filename` * :c:data:`qp_max_mem` * :c:data:`qp_run_address` +* :c:data:`qp_stop_filename` +* :c:data:`qp_stop_variable` * :c:data:`read_ao_integrals_e_n` * :c:data:`read_ao_integrals_kinetic` * :c:data:`read_ao_integrals_overlap` @@ -775,7 +788,6 @@ Index of Subroutines/Functions * :c:func:`apply_particles` * :c:func:`apply_rotation` * :c:func:`approx_dble` -* :c:func:`au0_h_au0` * :c:func:`b_coef` * :c:func:`berf` * :c:func:`binom_func` @@ -843,7 +855,6 @@ Index of Subroutines/Functions * :c:func:`detcmp` * :c:func:`deteq` * :c:func:`diag_h_mat_elem` -* :c:func:`diag_h_mat_elem_au0_h_au0` * :c:func:`diag_h_mat_elem_fock` * :c:func:`diag_h_mat_elem_one_e` * :c:func:`diag_s_mat_elem` @@ -972,6 +983,7 @@ Index of Subroutines/Functions * :c:func:`get_mono_excitation` * :c:func:`get_mono_excitation_from_fock` * :c:func:`get_mono_excitation_spin` +* :c:func:`get_occupation_from_dets` * :c:func:`get_phase` * :c:func:`get_phase_bi` * :c:func:`get_phasemask_bit` @@ -1163,17 +1175,13 @@ Index of Subroutines/Functions * :c:func:`perturb_buffer_by_mono_epstein_nesbet` * :c:func:`perturb_buffer_by_mono_epstein_nesbet_2x2` * :c:func:`perturb_buffer_by_mono_epstein_nesbet_2x2_no_ci_diag` -* :c:func:`perturb_buffer_by_mono_h_core` * :c:func:`perturb_buffer_by_mono_moller_plesset` -* :c:func:`perturb_buffer_by_mono_moller_plesset_general` * :c:func:`perturb_buffer_by_mono_qdpt` * :c:func:`perturb_buffer_dummy` * :c:func:`perturb_buffer_epstein_nesbet` * :c:func:`perturb_buffer_epstein_nesbet_2x2` * :c:func:`perturb_buffer_epstein_nesbet_2x2_no_ci_diag` -* :c:func:`perturb_buffer_h_core` * :c:func:`perturb_buffer_moller_plesset` -* :c:func:`perturb_buffer_moller_plesset_general` * :c:func:`perturb_buffer_qdpt` * :c:func:`primitive_value` * :c:func:`print_det` @@ -1196,9 +1204,7 @@ Index of Subroutines/Functions * :c:func:`pt2_epstein_nesbet_2x2_no_ci_diag` * :c:func:`pt2_find_sample` * :c:func:`pt2_find_sample_lr` -* :c:func:`pt2_h_core` * :c:func:`pt2_moller_plesset` -* :c:func:`pt2_moller_plesset_general` * :c:func:`pt2_qdpt` * :c:func:`pt2_slave_inproc` * :c:func:`pull_pt2` @@ -1208,6 +1214,7 @@ Index of Subroutines/Functions * :c:func:`push_pt2` * :c:func:`push_pt2_results` * :c:func:`push_selection_results` +* :c:func:`qp_stop` * :c:func:`qrpa` * :c:func:`qrpad` * :c:func:`qrpadd` @@ -1222,7 +1229,6 @@ Index of Subroutines/Functions * :c:func:`remove_duplicates_in_selection_buffer` * :c:func:`remove_small_contributions` * :c:func:`reorder_core_orb` -* :c:func:`repeat_all_e_corr` * :c:func:`reset_zmq_addresses` * :c:func:`resident_memory` * :c:func:`resize_h_apply_buffer` diff --git a/docs/source/programs/cis.rst b/docs/source/programs/cis.rst index 0a7334bc..ffbadf5f 100644 --- a/docs/source/programs/cis.rst +++ b/docs/source/programs/cis.rst @@ -7,6 +7,11 @@ cis === + + + + Configuration Interaction with Single excitations. + This program takes a reference Slater determinant of ROHF-like occupancy, and performs all single excitations on top of it. Disregarding spatial symmetry, it computes the `n_states` lowest @@ -16,22 +21,25 @@ cis Ground state calculation + ------------------------ - To be sure to have the lowest |SCF| solution, perform an :ref:`.scf.` - (see the :ref:`hartree_fock` module), then a :ref:`.cis.`, save - the natural orbitals (see :ref:`.save_natorb.`) and re-run an - :ref:`.scf.` optimization from this |MO| guess. + To be sure to have the lowest |SCF| solution, perform an :ref:`scf` + (see the :ref:`hartree_fock` module), then a :ref:`cis`, save + the natural orbitals (see :ref:`save_natorb`) and re-run an + :ref:`scf` optimization from this |MO| guess. Excited states calculations + --------------------------- + + The lowest excited states are much likely to be dominated by + single-excitations. Therefore, running a :ref:`cis` will save + the `n_states` lowest states within the |CIS| space in the |EZFIO| + directory, which can afterwards be used as guess wave functions for + a further multi-state |FCI| calculation if :option:`determinants read_wf` + is set to |true| before running the :ref:`fci` + executable. - The lowest excited states are much likely to be dominated by - single-excitations. Therefore, running a :ref:`.cis.` will save - the `n_states` lowest states within the |CIS| space in the |EZFIO| - directory, which can afterwards be used as guess wave functions for - a further multi-state |FCI| calculation if :option:`determinants - read_wf` is set to |true| before running the :ref:`.fci.` - executable. If :option:`determinants s2_eig` is set to |true|, the |CIS| will only retain states having the expected |S^2| value (see @@ -39,7 +47,7 @@ cis the lowest :option:`determinants n_states`, whatever multiplicity they are. - Note + .. note:: To discard some orbitals, use the :ref:`qp_set_mo_class` command to specify: diff --git a/docs/source/programs/cisd.rst b/docs/source/programs/cisd.rst index 000445ab..8208dd06 100644 --- a/docs/source/programs/cisd.rst +++ b/docs/source/programs/cisd.rst @@ -7,6 +7,11 @@ cisd ==== + + + Configuration Interaction with Single and Double excitations. + + This program takes a reference Slater determinant of ROHF-like occupancy, and performs all single and double excitations on top of it, disregarding spatial symmetry and compute the "n_states" lowest eigenstates of that CI diff --git a/docs/source/programs/diagonalize_h.rst b/docs/source/programs/diagonalize_h.rst index c07bbdd7..e21da7c0 100644 --- a/docs/source/programs/diagonalize_h.rst +++ b/docs/source/programs/diagonalize_h.rst @@ -7,6 +7,11 @@ diagonalize_h ============= + + + Program that extracts the :option:`determinants n_states` lowest states of the Hamiltonian within the set of Slater determinants stored in the EZFIO folder. + + If :option:`determinants s2_eig` = True, it will retain only states which corresponds to the desired value of :option:`determinants expected_s2`. diff --git a/docs/source/programs/fci.rst b/docs/source/programs/fci.rst index f7d6572c..f4b8b268 100644 --- a/docs/source/programs/fci.rst +++ b/docs/source/programs/fci.rst @@ -7,6 +7,11 @@ fci === + + + Selected Full Configuration Interaction with stochastic selection + and PT2. + This program performs a |CIPSI|-like selected |CI| using a stochastic scheme for both the selection of the important Slater determinants and the computation of the |PT2| correction. This @@ -43,8 +48,11 @@ fci .. hlist:: :columns: 3 + * :c:data:`psi_coef` * :c:data:`is_zmq_slave` * :c:data:`do_pt2` + * :c:data:`mo_two_e_integrals_in_map` + * :c:data:`psi_det` Calls: @@ -60,10 +68,10 @@ fci .. hlist:: :columns: 3 - * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_electronic_energy` * :c:data:`ci_energy` + * :c:data:`ci_electronic_energy` * :c:data:`n_det` * :c:data:`psi_occ_pattern` * :c:data:`c0_weight` @@ -73,9 +81,8 @@ fci * :c:data:`psi_det` * :c:data:`psi_det_size` * :c:data:`psi_det_sorted_bit` - * :c:data:`psi_energy` * :c:data:`psi_occ_pattern` - * :c:data:`psi_energy` + * :c:data:`pt2_e0_denominator` * :c:data:`pt2_stoch_istate` * :c:data:`read_wf` * :c:data:`state_average_weight` diff --git a/docs/source/programs/fcidump.rst b/docs/source/programs/fcidump.rst index 89351081..b6e2a5b4 100644 --- a/docs/source/programs/fcidump.rst +++ b/docs/source/programs/fcidump.rst @@ -7,6 +7,11 @@ fcidump ======= + + + Produce a regular FCIDUMP file from the |MOs| stored in the |EZFIO| folder. + + To specify an active space, the class of the mos have to set in the |EZFIO| folder (see :ref:`qp_set_mo_class`). The fcidump program supports 3 types of MO_class : @@ -22,15 +27,14 @@ fcidump :columns: 3 * :c:data:`elec_beta_num` - * :c:data:`list_act` * :c:data:`ezfio_filename` * :c:data:`core_fock_operator` - * :c:data:`core_bitmask` * :c:data:`elec_num` * :c:data:`mo_two_e_integrals_in_map` * :c:data:`elec_alpha_num` * :c:data:`mo_one_e_integrals` - * :c:data:`n_act_orb` + * :c:data:`n_core_orb` * :c:data:`mo_integrals_threshold` + * :c:data:`list_inact` * :c:data:`mo_integrals_map` * :c:data:`core_energy` diff --git a/docs/source/programs/four_idx_transform.rst b/docs/source/programs/four_idx_transform.rst index c4ab4887..953d7b1d 100644 --- a/docs/source/programs/four_idx_transform.rst +++ b/docs/source/programs/four_idx_transform.rst @@ -7,6 +7,11 @@ four_idx_transform ================== + + + 4-index transformation of two-electron integrals from |AO| to |MO| integrals. + + This program will compute the two-electron integrals on the |MO| basis and store it into the |EZFIO| folder. This program can be useful if the AO --> MO transformation is an expensive step by itself. diff --git a/docs/source/programs/ks_scf.rst b/docs/source/programs/ks_scf.rst index 4c75e8ce..bb1e9204 100644 --- a/docs/source/programs/ks_scf.rst +++ b/docs/source/programs/ks_scf.rst @@ -7,6 +7,11 @@ ks_scf ====== + + + Produce `Kohn_Sham` MO orbital + output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ + output: kohn_sham.energy optional: mo_basis.mo_coef Needs: diff --git a/docs/source/programs/molden.rst b/docs/source/programs/molden.rst index 68a84a6f..23830392 100644 --- a/docs/source/programs/molden.rst +++ b/docs/source/programs/molden.rst @@ -8,6 +8,11 @@ molden + + Produce a Molden file + + Needs: + .. hlist:: :columns: 3 diff --git a/docs/source/programs/print_e_conv.rst b/docs/source/programs/print_e_conv.rst index 38f7cd43..19212630 100644 --- a/docs/source/programs/print_e_conv.rst +++ b/docs/source/programs/print_e_conv.rst @@ -7,6 +7,11 @@ print_e_conv ============ + + + program that prints in a human readable format the convergence of the CIPSI algorithm. + + for all istate, this program produces * a file "EZFIO.istate.conv" containing the variational and var+PT2 energies as a function of N_det diff --git a/docs/source/programs/print_wf.rst b/docs/source/programs/print_wf.rst index dce4795f..56f5b238 100644 --- a/docs/source/programs/print_wf.rst +++ b/docs/source/programs/print_wf.rst @@ -7,6 +7,11 @@ print_wf ======== + + + Print the ground state wave function stored in the |EZFIO| folder in the intermediate normalization. + + It also prints a lot of information regarding the excitation operators from the reference determinant and a first-order perturbative analysis of the wave function. diff --git a/docs/source/programs/pt2.rst b/docs/source/programs/pt2.rst index e2c83c7e..c18e466b 100644 --- a/docs/source/programs/pt2.rst +++ b/docs/source/programs/pt2.rst @@ -7,6 +7,11 @@ pt2 === + + + Second order perturbative correction to the wave function contained in the EZFIO directory. + + This programs runs the stochastic PT2 correction on all "n_states" wave function stored in the EZFIO folder (see :option:`determinant n_states`). The option for the PT2 correction are the "pt2_relative_error" which is the relative stochastic @@ -42,8 +47,7 @@ pt2 * :c:data:`distributed_davidson` * :c:data:`level_shift` * :c:data:`mo_coef` - * :c:data:`psi_energy` - * :c:data:`psi_energy` + * :c:data:`pt2_e0_denominator` * :c:data:`pt2_stoch_istate` * :c:data:`read_wf` * :c:data:`state_average_weight` diff --git a/docs/source/programs/rs_ks_scf.rst b/docs/source/programs/rs_ks_scf.rst index d28d2178..bdf8969d 100644 --- a/docs/source/programs/rs_ks_scf.rst +++ b/docs/source/programs/rs_ks_scf.rst @@ -7,6 +7,11 @@ rs_ks_scf ========= + + + Produce `Range_separated_Kohn_Sham` MO orbital + output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ + output: kohn_sham.energy optional: mo_basis.mo_coef Needs: diff --git a/docs/source/programs/save_natorb.rst b/docs/source/programs/save_natorb.rst index ce969647..736e4178 100644 --- a/docs/source/programs/save_natorb.rst +++ b/docs/source/programs/save_natorb.rst @@ -7,6 +7,11 @@ save_natorb =========== + + + Save natural MOs into the EZFIO + + This program reads the wave function stored in the EZFIO folder, extracts the corresponding natural orbitals and set them as the new MOs diff --git a/docs/source/programs/save_one_e_dm.rst b/docs/source/programs/save_one_e_dm.rst index 518483df..bf8ec089 100644 --- a/docs/source/programs/save_one_e_dm.rst +++ b/docs/source/programs/save_one_e_dm.rst @@ -7,6 +7,11 @@ save_one_e_dm ============= + + + programs that computes the one body density on the mo basis for alpha and beta electrons + from the wave function stored in the EZFIO folder, and then save it into the EZFIO folder aux_quantities. + Then, the global variable data_one_e_dm_alpha_mo and data_one_e_dm_beta_mo will automatically read this density in a further calculation. This can be used to perform damping on the density in RS-DFT calculation (see the density_for_dft module). diff --git a/docs/source/programs/save_ortho_mos.rst b/docs/source/programs/save_ortho_mos.rst index 6666e7ed..80cb065d 100644 --- a/docs/source/programs/save_ortho_mos.rst +++ b/docs/source/programs/save_ortho_mos.rst @@ -7,6 +7,11 @@ save_ortho_mos ============== + + + Save orthonormalized MOs in the EZFIO. + + This program reads the current MOs, computes the corresponding overlap matrix in the MO basis and perform a Lowdin orthonormalization : :math:`MO_{new} = S^{-1/2} MO_{guess}`. diff --git a/docs/source/programs/scf.rst b/docs/source/programs/scf.rst index 4d6abee0..0c70d00a 100644 --- a/docs/source/programs/scf.rst +++ b/docs/source/programs/scf.rst @@ -7,10 +7,40 @@ scf === + + - output: hartree_fock.energy + The :ref:`scf` program performs *Restricted* Hartree-Fock + calculations (the spatial part of the |MOs| is common for alpha and beta + spinorbitals). + + It performs the following actions: + + #. Compute/Read all the one- and two-electron integrals, and store them + in memory + #. Check in the |EZFIO| database if there is a set of |MOs|. + If there is, it will read them as initial guess. Otherwise, it will + create a guess. + #. Perform the |SCF| iterations + + For the keywords related to the |SCF| procedure, see the ``scf_utils`` + directory where you will find all options. + + At each iteration, the |MOs| are saved in the |EZFIO| database. Hence, + if the calculation crashes for any unexpected reason, the calculation + can be restarted by running again the |SCF| with the same |EZFIO| + database. + + To start again a fresh |SCF| calculation, the |MOs| can be reset by + running the :ref:`qp_reset` command. + + The `DIIS`_ algorithm is implemented, as well as the `level-shifting`_ + method. If the |SCF| does not converge, try again with a higher value of + :option:`level_shift`. + + .. _DIIS: https://en.wikipedia.org/w/index.php?title=DIIS + .. _level-shifting: https://doi.org/10.1002/qua.560070407 - optional: mo_basis.mo_coef Calls: diff --git a/docs/source/programs/write_integrals_erf.rst b/docs/source/programs/write_integrals_erf.rst index 1cf64a11..b940e8b4 100644 --- a/docs/source/programs/write_integrals_erf.rst +++ b/docs/source/programs/write_integrals_erf.rst @@ -8,6 +8,11 @@ write_integrals_erf + + Saves the two-electron integrals with the :math:`erf(\mu r_{12})/r_{12}` oprerator into the EZFIO folder + + Needs: + .. hlist:: :columns: 3 diff --git a/etc/qp.rc b/etc/qp.rc index 7ec71d31..387025c7 100644 --- a/etc/qp.rc +++ b/etc/qp.rc @@ -66,7 +66,11 @@ function qp() >&2 echo "qp: ${2} not found" fi;; - "has"|"set"|"get"|"unset_file") + "unset_file") + unset EZFIO_FILE + ;; + + "has"|"set"|"get") ezfio "$@" ;; @@ -209,8 +213,8 @@ _qp_Complete() ;; esac;; *) - COMPREPLY=( $(compgen -W 'plugins set_file\ - man \ + COMPREPLY=( $(compgen -W 'plugins set_file \ + unset_file man \ create_ezfio \ convert_output_to_ezfio \ -h update' -- $cur ) ) @@ -259,7 +263,7 @@ _qp_Complete() return 0 ;; *) - COMPREPLY+=( $(compgen -W 'has get set unset_file edit \ + COMPREPLY+=( $(compgen -W 'has get set edit \ run srun mpirun set_frozen_core \ reset set_mo_class ' \ -- $cur ) ) diff --git a/man/cis.1 b/man/cis.1 index 06e61a0e..07e3260b 100644 --- a/man/cis.1 +++ b/man/cis.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "CIS" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "CIS" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME cis \- | Quantum Package > . @@ -32,43 +32,55 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBh_apply.irp.f_shell_8\fP +Configuration Interaction with Single excitations. +.sp +This program takes a reference Slater determinant of ROHF\-like +occupancy, and performs all single excitations on top of it. +Disregarding spatial symmetry, it computes the \fIn_states\fP lowest +eigenstates of that CI matrix. (see \fBdeterminants n_states\fP) +.sp +This program can be useful in many cases: +.sp +To be sure to have the lowest SCF solution, perform an scf +(see the hartree_fock module), then a \fI\%cis\fP, save +the natural orbitals (see save_natorb) and re\-run an +scf optimization from this MO guess. +.sp +The lowest excited states are much likely to be dominated by +single\-excitations. Therefore, running a \fI\%cis\fP will save +the \fIn_states\fP lowest states within the CIS space in the \fI\%EZFIO\fP +directory, which can afterwards be used as guess wave functions for +a further multi\-state FCI calculation if \fBdeterminants read_wf\fP +is set to \fBtrue\fP before running the fci +executable. +.sp +If \fBdeterminants s2_eig\fP is set to \fBtrue\fP, the CIS +will only retain states having the expected \ewidehat{S^2} value (see +\fBdeterminants expected_s2\fP). Otherwise, the CIS will take +the lowest \fBdeterminants n_states\fP, whatever multiplicity +they are. +.sp +\fBNOTE:\fP .INDENT 0.0 .INDENT 3.5 -.sp -.nf -.ft C -subroutine H_apply_cis_monoexc(key_in, hole_1,particl_1,fock_diag_tmp,i_generator,iproc_in ) -.ft P -.fi +To discard some orbitals, use the qp_set_mo_class +command to specify: +.INDENT 0.0 +.IP \(bu 2 +\fIcore\fP orbitals which will be always doubly occupied +.IP \(bu 2 +\fIact\fP orbitals where an electron can be either excited from or to +.IP \(bu 2 +\fIdel\fP orbitals which will be never occupied +.UNINDENT .UNINDENT .UNINDENT -.sp -Generate all single excitations of key_in using the bit masks of holes and -particles. -Assume N_int is already provided. .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBn_int\fP -.UNINDENT -.INDENT 2.0 -.IP \(bu 2 -\fBelec_alpha_num\fP -.UNINDENT -.INDENT 2.0 -.IP \(bu 2 -\fBmo_num\fP -.UNINDENT -.UNINDENT -.sp -Called by: -.INDENT 0.0 -.INDENT 2.0 -.IP \(bu 2 -\fBh_apply_cis()\fP +\fBread_wf\fP .UNINDENT .INDENT 2.0 .UNINDENT @@ -80,13 +92,33 @@ Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBbitstring_to_list_ab()\fP +\fBrun()\fP +.UNINDENT +.INDENT 2.0 +.UNINDENT +.INDENT 2.0 +.UNINDENT +.UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 +.IP \(bu 2 +\fBfock_matrix_ao_alpha\fP +.IP \(bu 2 +\fBfock_matrix_ao_alpha\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBfill_h_apply_buffer_no_selection()\fP +\fBmo_coef\fP +.IP \(bu 2 +\fBlevel_shift\fP .UNINDENT .INDENT 2.0 +.IP \(bu 2 +\fBmo_coef\fP +.IP \(bu 2 +\fBread_wf\fP .UNINDENT .UNINDENT .UNINDENT @@ -94,6 +126,6 @@ Calls: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/cisd.1 b/man/cisd.1 index 2dedfb04..79bb7ae1 100644 --- a/man/cisd.1 +++ b/man/cisd.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "CISD" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "CISD" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME cisd \- | Quantum Package > . @@ -32,43 +32,53 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBh_apply.irp.f_shell_8\fP +Configuration Interaction with Single and Double excitations. +.sp +This program takes a reference Slater determinant of ROHF\-like occupancy, +.sp +and performs all single and double excitations on top of it, disregarding +spatial symmetry and compute the “n_states” lowest eigenstates of that CI +matrix (see \fBdeterminants n_states\fP). +.sp +This program can be useful in many cases: .INDENT 0.0 -.INDENT 3.5 +.IP \(bu 2 +GROUND STATE CALCULATION: if even after a \fBcis()\fP calculation, natural +orbitals (see \fBsave_natorb()\fP) and then \fBscf()\fP optimization, you are not sure to have the lowest scf +solution, +do the same strategy with the \fBcisd()\fP executable instead of the \fBcis()\fP\ exectuable to generate the natural +orbitals as a guess for the \fBscf()\fP\&. +.IP \(bu 2 +EXCITED STATES CALCULATIONS: the lowest excited states are much likely to +be dominanted by single\- or double\-excitations. +Therefore, running a \fBcisd()\fP will save the “n_states” lowest states within +the CISD space +in the EZFIO folder, which can afterward be used as guess wave functions +for a further multi\-state fci calculation if you specify “read_wf” = True +before running the fci executable (see \fBdeterminants read_wf\fP). +Also, if you specify “s2_eig” = True, the cisd will only retain states +having the good value S^2 value +(see \fBdeterminants expected_s2\fP and \fBdeterminants s2_eig\fP). +If “s2_eig” = False, it will take the lowest n_states, whatever +multiplicity they are. .sp -.nf -.ft C -subroutine H_apply_cisd_monoexc(key_in, hole_1,particl_1,fock_diag_tmp,i_generator,iproc_in ) -.ft P -.fi +Note: if you would like to discard some orbitals, use +qp_set_mo_class to specify: +.INDENT 2.0 +.IP \(bu 2 +“core” orbitals which will be always doubly occupied +.IP \(bu 2 +“act” orbitals where an electron can be either excited from or to +.IP \(bu 2 +“del” orbitals which will be never occupied .UNINDENT .UNINDENT .sp -Generate all single excitations of key_in using the bit masks of holes and -particles. -Assume N_int is already provided. -.sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBn_int\fP -.UNINDENT -.INDENT 2.0 -.IP \(bu 2 -\fBelec_alpha_num\fP -.UNINDENT -.INDENT 2.0 -.IP \(bu 2 -\fBmo_num\fP -.UNINDENT -.UNINDENT -.sp -Called by: -.INDENT 0.0 -.INDENT 2.0 -.IP \(bu 2 -\fBh_apply_cisd()\fP +\fBread_wf\fP .UNINDENT .INDENT 2.0 .UNINDENT @@ -80,13 +90,33 @@ Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBbitstring_to_list_ab()\fP +\fBrun()\fP +.UNINDENT +.INDENT 2.0 +.UNINDENT +.INDENT 2.0 +.UNINDENT +.UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 +.IP \(bu 2 +\fBfock_matrix_ao_alpha\fP +.IP \(bu 2 +\fBfock_matrix_ao_alpha\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBfill_h_apply_buffer_no_selection()\fP +\fBmo_coef\fP +.IP \(bu 2 +\fBlevel_shift\fP .UNINDENT .INDENT 2.0 +.IP \(bu 2 +\fBmo_coef\fP +.IP \(bu 2 +\fBread_wf\fP .UNINDENT .UNINDENT .UNINDENT @@ -94,6 +124,6 @@ Calls: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/configure.1 b/man/configure.1 index 391afcc4..402f4cff 100644 --- a/man/configure.1 +++ b/man/configure.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "CONFIGURE" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "CONFIGURE" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME configure \- | Quantum Package > . @@ -31,7 +31,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp -Program that can either configure the compilations options and download/install external dependencies (see the installation description). +Program that can either configure the compilations options or download/install +external dependencies (see the installation description). .SH USAGE .INDENT 0.0 .INDENT 3.5 @@ -73,6 +74,6 @@ Try to install . Use at your own risk. .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/diagonalize_h.1 b/man/diagonalize_h.1 index 0712e79d..0579b2f0 100644 --- a/man/diagonalize_h.1 +++ b/man/diagonalize_h.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "DIAGONALIZE_H" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "DIAGONALIZE_H" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME diagonalize_h \- | Quantum Package > . @@ -32,47 +32,41 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 +Program that extracts the \fBdeterminants n_states\fP lowest states of the Hamiltonian within the set of Slater determinants stored in the EZFIO folder. .sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT -.UNINDENT +If \fBdeterminants s2_eig\fP = True, it will retain only states +.sp +which corresponds to the desired value of \fBdeterminants expected_s2\fP\&. .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP -.IP \(bu 2 -\fBmo_coef\fP -.IP \(bu 2 -\fBao_num\fP +\fBread_wf\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_l_char_space\fP -.IP \(bu 2 -\fBnucl_charge\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_nucl\fP -.IP \(bu 2 -\fBelement_name\fP .UNINDENT .UNINDENT .sp -Called by: +Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmolden()\fP +\fBroutine()\fP +.UNINDENT +.INDENT 2.0 +.UNINDENT +.INDENT 2.0 +.UNINDENT +.UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 +.IP \(bu 2 +\fBread_wf\fP .UNINDENT .INDENT 2.0 .UNINDENT @@ -84,6 +78,6 @@ Called by: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/excited_states.1 b/man/excited_states.1 index 0c2a4665..c35acce8 100644 --- a/man/excited_states.1 +++ b/man/excited_states.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "EXCITED_STATES" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "EXCITED_STATES" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME excited_states \- | Quantum Package > . @@ -31,40 +31,43 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp -It is possible to run excited states calculations with the quantum package. To -do this, set \fBdeterminants n_states\fP to the number of requested states. -The selection criterion will be the maximum of the selection criteria for each -state. If the Davidson diagonalization has difficulties to converge, increase -the \fBdavidson n_states_diag\fP value. +It is possible to run excited states calculations with the quantum +package. To do this, set \fBdeterminants n_states\fP to the number +of requested states. The selection criterion will be the maximum of the +selection criteria for each state. If the Davidson diagonalization has +difficulties to converge, increase the \fBdavidson n_states_diag\fP +value. .sp -When computing multiple states, it is good to have the \fBdeterminants -s2_eig\fP flag \fBtrue\fP\&. This will force the Davidson algorithm to choose only -vectors with a value of \ewidehat{S^2} equal to \fBdeterminants expected_s2\fP\&. -Otherwise, different spin states will come out in the diagonalization. +When computing multiple states, it is good to have the +\fBdeterminants s2_eig\fP flag \fBtrue\fP\&. This will force the Davidson +algorithm to choose only vectors with a value of \ewidehat{S^2} equal to +\fBdeterminants expected_s2\fP\&. Otherwise, different spin states +will come out in the diagonalization. .sp -The \fIQuantum Package\fP doesn’t take account of the symmetry. Due to numerical noise, excited -states of different symmetries may enter in the calculation. Note that it is -possible to make state\-average calculation of states with different symmetries -and/or different spin multiplicities. +The \fIQuantum Package\fP doesn’t take account of the symmetry. Due to numerical noise, +excited states of different symmetries may enter in the calculation. +Note that it is possible to make state\-average calculation of states +with different symmetries and/or different spin multiplicities. .sp -To include excited state of all possible symmetries, a simple trick is to -run a preliminary multi\-state CIS calculation using the CIS program, -and then running the selected FCI restarting from the CIS states, setting -\fBdeterminants read_wf\fP to \fBtrue\fP\&. +To include excited state of all possible symmetries, a simple trick is +to run a preliminary multi\-state CIS calculation using the CIS +program, and then running the selected FCI restarting from the CIS +states, setting \fBdeterminants read_wf\fP to \fBtrue\fP\&. .sp -Usually, it is good practice to use state\-averaged natural MOs so that all -states have MOs of comparable quality. This allows for a faster convergence -of excitation energies. +Usually, it is good practice to use state\-averaged natural MOs so that +all states have MOs of comparable quality. This allows for a faster +convergence of excitation energies. .sp \fBSEE ALSO:\fP .INDENT 0.0 .INDENT 3.5 -The documentation of the \fBscf()\fP, \fBcis()\fP and \fBfci()\fP programs. +The documentation of the \fBscf()\fP, \fBcis()\fP and +\fBfci()\fP programs. .UNINDENT .UNINDENT .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/fci.1 b/man/fci.1 index 8553d11f..0121e2ae 100644 --- a/man/fci.1 +++ b/man/fci.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "FCI" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "FCI" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME fci \- | Quantum Package > . @@ -32,43 +32,61 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBfci/save_energy.irp.f\fP +Selected Full Configuration Interaction with stochastic selection +and PT2. +.sp +This program performs a CIPSI\-like selected CI using a +stochastic scheme for both the selection of the important Slater +determinants and the computation of the PT2 correction. This +CIPSI\-like algorithm will be performed for the lowest states of +the variational space (see \fBdeterminants n_states\fP). The +FCI program will stop when reaching at least one the two following +conditions: .INDENT 0.0 -.INDENT 3.5 -.sp -.nf -.ft C -subroutine save_energy(E,pt2) -.ft P -.fi -.UNINDENT +.IP \(bu 2 +number of Slater determinants > \fBdeterminants n_det_max\fP +.IP \(bu 2 +PT2 < \fBperturbation pt2_max\fP .UNINDENT .sp -Saves the energy in \fI\%EZFIO\fP\&. +The following other options can be of interest: +.INDENT 0.0 +.TP +.B \fBdeterminants read_wf\fP +When set to \fBfalse\fP, the program starts with a ROHF\-like Slater +determinant as a guess wave function. When set to \fBtrue\fP, the +program starts with the wave function(s) stored in the \fI\%EZFIO\fP +directory as guess wave function(s). +.TP +.B \fBdeterminants s2_eig\fP +When set to \fBtrue\fP, the selection will systematically add all the +necessary Slater determinants in order to have a pure spin wave +function with an \ewidehat{S^2} value corresponding to +\fBdeterminants expected_s2\fP\&. +.UNINDENT +.sp +For excited states calculations, it is recommended to start with +\&.cis. or \&.cisd. guess wave functions, eventually in +a restricted set of MOs, and to set \fBdeterminants s2_eig\fP +to \fBtrue\fP\&. .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBn_states\fP -.UNINDENT -.INDENT 2.0 -.UNINDENT -.INDENT 2.0 -.UNINDENT -.UNINDENT -.sp -Called by: -.INDENT 0.0 -.INDENT 2.0 +\fBpsi_coef\fP .IP \(bu 2 -\fBrun_cipsi()\fP +\fBis_zmq_slave\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBrun_stochastic_cipsi()\fP +\fBdo_pt2\fP +.IP \(bu 2 +\fBmo_two_e_integrals_in_map\fP .UNINDENT .INDENT 2.0 +.IP \(bu 2 +\fBpsi_det\fP .UNINDENT .UNINDENT .sp @@ -76,13 +94,63 @@ Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBezfio_set_fci_energy()\fP +\fBrun_cipsi()\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBezfio_set_fci_energy_pt2()\fP +\fBrun_slave_cipsi()\fP .UNINDENT .INDENT 2.0 +.IP \(bu 2 +\fBrun_stochastic_cipsi()\fP +.UNINDENT +.UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 +.IP \(bu 2 +\fBci_electronic_energy\fP +.IP \(bu 2 +\fBci_electronic_energy\fP +.IP \(bu 2 +\fBci_energy\fP +.IP \(bu 2 +\fBci_electronic_energy\fP +.IP \(bu 2 +\fBn_det\fP +.IP \(bu 2 +\fBpsi_occ_pattern\fP +.IP \(bu 2 +\fBc0_weight\fP +.UNINDENT +.INDENT 2.0 +.IP \(bu 2 +\fBdistributed_davidson\fP +.IP \(bu 2 +\fBpsi_coef\fP +.IP \(bu 2 +\fBpsi_det_sorted_bit\fP +.IP \(bu 2 +\fBpsi_det\fP +.IP \(bu 2 +\fBpsi_det_size\fP +.IP \(bu 2 +\fBpsi_det_sorted_bit\fP +.UNINDENT +.INDENT 2.0 +.IP \(bu 2 +\fBpsi_occ_pattern\fP +.IP \(bu 2 +\fBpt2_e0_denominator\fP +.IP \(bu 2 +\fBpt2_stoch_istate\fP +.IP \(bu 2 +\fBread_wf\fP +.IP \(bu 2 +\fBstate_average_weight\fP +.IP \(bu 2 +\fBthreshold_generators\fP .UNINDENT .UNINDENT .UNINDENT @@ -90,6 +158,6 @@ Calls: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/fcidump.1 b/man/fcidump.1 index 73462153..6df57772 100644 --- a/man/fcidump.1 +++ b/man/fcidump.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "FCIDUMP" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "FCIDUMP" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME fcidump \- | Quantum Package > . @@ -32,51 +32,51 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 +Produce a regular FCIDUMP file from the MOs stored in the \fI\%EZFIO\fP folder. .sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT +To specify an active space, the class of the mos have to set in the \fI\%EZFIO\fP folder (see qp_set_mo_class). +.sp +The fcidump program supports 3 types of MO_class : +.INDENT 0.0 +.IP \(bu 2 +the “core” orbitals which are always doubly occupied in the calculation +.IP \(bu 2 +the “del” orbitals that are never occupied in the calculation +.IP \(bu 2 +the “act” orbitals that will be occupied by a varying number of electrons .UNINDENT .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP +\fBelec_beta_num\fP .IP \(bu 2 -\fBmo_coef\fP +\fBezfio_filename\fP .IP \(bu 2 -\fBao_num\fP +\fBcore_fock_operator\fP +.IP \(bu 2 +\fBelec_num\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBao_l_char_space\fP +\fBmo_two_e_integrals_in_map\fP .IP \(bu 2 -\fBnucl_charge\fP +\fBelec_alpha_num\fP +.IP \(bu 2 +\fBmo_one_e_integrals\fP +.IP \(bu 2 +\fBn_core_orb\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBao_nucl\fP +\fBmo_integrals_threshold\fP .IP \(bu 2 -\fBelement_name\fP -.UNINDENT -.UNINDENT -.sp -Called by: -.INDENT 0.0 -.INDENT 2.0 +\fBlist_inact\fP .IP \(bu 2 -\fBmolden()\fP -.UNINDENT -.INDENT 2.0 -.UNINDENT -.INDENT 2.0 +\fBmo_integrals_map\fP +.IP \(bu 2 +\fBcore_energy\fP .UNINDENT .UNINDENT .UNINDENT @@ -84,6 +84,6 @@ Called by: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/four_idx_transform.1 b/man/four_idx_transform.1 index 2b001588..cc610f5a 100644 --- a/man/four_idx_transform.1 +++ b/man/four_idx_transform.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "FOUR_IDX_TRANSFORM" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "FOUR_IDX_TRANSFORM" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME four_idx_transform \- | Quantum Package > . @@ -32,47 +32,31 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 +4\-index transformation of two\-electron integrals from AO to MO integrals. .sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT -.UNINDENT +This program will compute the two\-electron integrals on the MO basis and store it into the \fI\%EZFIO\fP folder. +.sp +This program can be useful if the AO –> MO transformation is an expensive step by itself. .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP -.IP \(bu 2 -\fBmo_coef\fP -.IP \(bu 2 -\fBao_num\fP +\fBio_mo_two_e_integrals\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBao_l_char_space\fP -.IP \(bu 2 -\fBnucl_charge\fP +\fBmo_two_e_integrals_in_map\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_nucl\fP -.IP \(bu 2 -\fBelement_name\fP .UNINDENT .UNINDENT .sp -Called by: +Touches: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmolden()\fP +\fBio_mo_two_e_integrals\fP .UNINDENT .INDENT 2.0 .UNINDENT @@ -84,6 +68,6 @@ Called by: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/interfaces.1 b/man/interfaces.1 index eb15abbf..6b61eb4e 100644 --- a/man/interfaces.1 +++ b/man/interfaces.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "INTERFACES" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "INTERFACES" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME interfaces \- | Quantum Package > . @@ -57,6 +57,6 @@ These interfaces are provided as \fI\%external plugins\fP\&. .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/ks_scf.1 b/man/ks_scf.1 index 172a09ab..e9eb6d53 100644 --- a/man/ks_scf.1 +++ b/man/ks_scf.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "KS_SCF" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "KS_SCF" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME ks_scf \- | Quantum Package > . @@ -32,8 +32,6 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBks_scf.irp.f\fP -.sp Produce \fIKohn_Sham\fP MO orbital output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ output: kohn_sham.energy @@ -111,6 +109,6 @@ Touches: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/molden.1 b/man/molden.1 index bd935bbd..09ce8921 100644 --- a/man/molden.1 +++ b/man/molden.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "MOLDEN" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "MOLDEN" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME molden \- | Quantum Package > . @@ -32,51 +32,35 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 -.sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT -.UNINDENT +Produce a Molden file .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP -.IP \(bu 2 -\fBmo_coef\fP -.IP \(bu 2 -\fBao_num\fP +\fBezfio_filename\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_l_char_space\fP -.IP \(bu 2 -\fBnucl_charge\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_nucl\fP -.IP \(bu 2 -\fBelement_name\fP .UNINDENT .UNINDENT .sp -Called by: +Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmolden()\fP +\fBwrite_ao_basis()\fP +.IP \(bu 2 +\fBwrite_geometry()\fP .UNINDENT .INDENT 2.0 +.IP \(bu 2 +\fBwrite_intro_gamess()\fP .UNINDENT .INDENT 2.0 +.IP \(bu 2 +\fBwrite_mo_basis()\fP .UNINDENT .UNINDENT .UNINDENT @@ -84,6 +68,6 @@ Called by: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/natural_orbitals.1 b/man/natural_orbitals.1 index 7b07fbb7..8f8cf279 100644 --- a/man/natural_orbitals.1 +++ b/man/natural_orbitals.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "NATURAL_ORBITALS" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "NATURAL_ORBITALS" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME natural_orbitals \- | Quantum Package > . @@ -44,12 +44,14 @@ qp_run save_natorb file.ezfio .UNINDENT .UNINDENT .sp -The MOs will be replaced, so the two\-electron integrals and the wave function -are invalidated as well. +The MOs will be replaced, so the two\-electron integrals and the wave +function are invalidated as well. .SH EXTRACTING NATURAL ORBITALS .sp -Once obtained the near FCI wave function, one can obtain many quantities related to it. -One of these quantities are the natural orbitals which have the properties of diagonalizing the one\-body density matrix: +Once obtained the near FCI wave function, one can obtain many +Onquantities related to it. e of these quantities are the natural +Onorbitals which have the properties of diagonalizing the one\-body +Ondensity matrix: .INDENT 0.0 .INDENT 3.5 .sp @@ -59,7 +61,8 @@ One of these quantities are the natural orbitals which have the properties of di .UNINDENT .UNINDENT .sp -where the element of the one\-body density matrix \erho_{ij} is define as: +where the element of the one\-body density matrix \erho_{ij} is +define as: .INDENT 0.0 .INDENT 3.5 .sp @@ -69,7 +72,10 @@ where the element of the one\-body density matrix \erho_{ij} is define as: .UNINDENT .UNINDENT .sp -These orbitals are in general known to be better than the usual HF MOs as they are obtained from a correlated wave function. To use these orbitals for future calculations, one has to replace the current MOs by the natural orbitals. To do so, just run: +These orbitals are in general known to be better than the usual HF +MOs as they are obtained from a correlated wave function. To use these +orbitals for future calculations, one has to replace the current MOs +by the natural orbitals. To do so, just run: .INDENT 0.0 .INDENT 3.5 .sp @@ -85,11 +91,14 @@ qp_run save_natorb file.ezfio \fBIMPORTANT:\fP .INDENT 0.0 .INDENT 3.5 -As the MOs are changed, for the sake of coherence of future calculations, the save_natorb program -\fIautomatically removes the current wave function\fP stored in the \fI\%EZFIO\fP database and replace -it by a single Slater determinant corresponding to a HF occupation of the new spin orbitals. -Also, all the keywords to read the one\- and two\-electron integrals on the MO basis are set to “None” -in order to be sure not to read integrals not corresponding to the current set of MOs\&. +As the MOs are changed, for the sake of coherence of future +calculations, the save_natorb program \fIautomatically removes the +current wave function\fP stored in the \fI\%EZFIO\fP database and replaces +it by a single Slater determinant corresponding to a HF occupation +of the new spin orbitals. Also, all the keywords to read the one\- +and two\-electron integrals on the MO basis are set to \fBNone\fP in +order to be sure to avoid reading integrals incompatible with the +current set of MOs\&. .UNINDENT .UNINDENT .sp @@ -102,6 +111,6 @@ The documentation of the \fBsave_natorb()\fP program. .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/plugins.1 b/man/plugins.1 index 232c3785..8107c596 100644 --- a/man/plugins.1 +++ b/man/plugins.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PLUGINS" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "PLUGINS" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME plugins \- | Quantum Package > . @@ -31,15 +31,16 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp -\fIQuantum Package\fP has very few executables out of the box. Most of the time, external -plugins need to be downloaded and installed in the \fB$QP_ROOT/plugins\fP -directory. +\fIQuantum Package\fP has very few executables out of the box. Most of the time, +external plugins need to be downloaded and installed in the +\fB$QP_ROOT/plugins\fP directory. .sp -Plugins are usually hosted in external repositories. To download a plugin, -the remote repository needs to be downloaded, and the plugins of the -repository can be selected for installation. +Plugins are usually hosted in external repositories. To download a +plugin, the remote repository needs to be downloaded, and the plugins of +the repository can be selected for installation. .sp -To download an external repository of plugins, run the following command: +To download an external repository of plugins, run the following +command: .INDENT 0.0 .INDENT 3.5 .sp @@ -103,6 +104,6 @@ For a more detailed explanation and an example, see qp_plugins\&. .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/print_e_conv.1 b/man/print_e_conv.1 index 3215451e..2df9cc2d 100644 --- a/man/print_e_conv.1 +++ b/man/print_e_conv.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PRINT_E_CONV" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "PRINT_E_CONV" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME print_e_conv \- | Quantum Package > . @@ -32,47 +32,33 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 +program that prints in a human readable format the convergence of the CIPSI algorithm. .sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT +for all istate, this program produces +.INDENT 0.0 +.IP \(bu 2 +a file “EZFIO.istate.conv” containing the variational and var+PT2 energies as a function of N_det +.IP \(bu 2 +for istate > 1, a file EZFIO.istate.delta_e.conv containing the energy difference (both var and var+PT2) with the ground state as a function of N_det .UNINDENT .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP -.IP \(bu 2 -\fBmo_coef\fP -.IP \(bu 2 -\fBao_num\fP +\fBezfio_filename\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_l_char_space\fP -.IP \(bu 2 -\fBnucl_charge\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_nucl\fP -.IP \(bu 2 -\fBelement_name\fP .UNINDENT .UNINDENT .sp -Called by: +Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmolden()\fP +\fBroutine_e_conv()\fP .UNINDENT .INDENT 2.0 .UNINDENT @@ -84,6 +70,6 @@ Called by: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/print_wf.1 b/man/print_wf.1 index 146c7de7..e0278254 100644 --- a/man/print_wf.1 +++ b/man/print_wf.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PRINT_WF" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "PRINT_WF" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME print_wf \- | Quantum Package > . @@ -32,47 +32,43 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 +Print the ground state wave function stored in the \fI\%EZFIO\fP folder in the intermediate normalization. .sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT -.UNINDENT +It also prints a lot of information regarding the excitation operators from the reference determinant +.sp +and a first\-order perturbative analysis of the wave function. +.sp +If the wave function strongly deviates from the first\-order analysis, something funny is going on :) .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP -.IP \(bu 2 -\fBmo_coef\fP -.IP \(bu 2 -\fBao_num\fP +\fBread_wf\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_l_char_space\fP -.IP \(bu 2 -\fBnucl_charge\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_nucl\fP -.IP \(bu 2 -\fBelement_name\fP .UNINDENT .UNINDENT .sp -Called by: +Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmolden()\fP +\fBroutine()\fP +.UNINDENT +.INDENT 2.0 +.UNINDENT +.INDENT 2.0 +.UNINDENT +.UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 +.IP \(bu 2 +\fBread_wf\fP .UNINDENT .INDENT 2.0 .UNINDENT @@ -84,6 +80,6 @@ Called by: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/printing.1 b/man/printing.1 index d19b737d..2c9d32f1 100644 --- a/man/printing.1 +++ b/man/printing.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PRINTING" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "PRINTING" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME printing \- | Quantum Package > . @@ -31,9 +31,10 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp -Once obtained the near FCI energy, one can also take a closer look at the wave function stored in the \fI\%EZFIO\fP database. -If the wave function contains less than 10^4 determinants, you can directly read it with the -qp_edit command. Just run +Once obtained the near\-FCI energy, one can also take a closer look at +the wave function stored in the \fI\%EZFIO\fP database. If the wave function +contains less than 10^4 determinants, you can directly read it +with the qp_edit command. Just run .INDENT 0.0 .INDENT 3.5 .sp @@ -48,14 +49,18 @@ qp_edit file.ezfio \fBIMPORTANT:\fP .INDENT 0.0 .INDENT 3.5 -The qp_edit mode virtually makes human\-friendly the architecture of the \fI\%EZFIO\fP database -through \fIvim\fP\-like editor. +The qp_edit mode virtually makes human\-friendly the +architecture of the \fI\%EZFIO\fP database through the use of a +the text editor defined by the \fBEDITOR\fP environment +variable. .UNINDENT .UNINDENT .sp -Then, look for the word “hand” when you are in the qp_edit mode. If the research is negative, -then it means that the wave function stored in the \fI\%EZFIO\fP database is too large to be edited -interactively in qp_edit mode. An alternative is to use the \fBprint_wf\fP command: +Then, look for the word \fIhand\fP when you are in the qp_edit +mode. If the research is negative, then it means that the wave +function stored in the \fI\%EZFIO\fP database is too large to be edited +interactively in qp_edit mode. An alternative is to use the +\fBprint_wf\fP command: .INDENT 0.0 .INDENT 3.5 .sp @@ -67,7 +72,11 @@ qp_run print_wf file.ezfio | tee file.ezfio.fci_natorb.wf .UNINDENT .UNINDENT .sp -This program will, by default, print out the first 10^4 determinants whatever the size of the wave function stored in the \fI\%EZFIO\fP folder. If you want to change the number of printed Slater determinants, just change the \fBdeterminants n_det_print_wf\fP keyword using the qp_edit tool. +This program will, by default, print out the first 10^4 +determinants whatever the size of the wave function stored in the +\fI\%EZFIO\fP folder. If you want to change the number of printed Slater +determinants, just change the \fBdeterminants n_det_print_wf\fP +keyword using the qp_edit tool. .sp \fBSEE ALSO:\fP .INDENT 0.0 @@ -78,6 +87,6 @@ The documentation of the print_wf program. .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/pt2.1 b/man/pt2.1 index eb52a11d..743cbfed 100644 --- a/man/pt2.1 +++ b/man/pt2.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "PT2" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "PT2" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME pt2 \- | Quantum Package > . @@ -32,43 +32,31 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBfci/save_energy.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 +Second order perturbative correction to the wave function contained in the EZFIO directory. .sp -.nf -.ft C -subroutine save_energy(E,pt2) -.ft P -.fi -.UNINDENT -.UNINDENT +This programs runs the stochastic PT2 correction on all “n_states” wave function stored in the EZFIO folder (see \fBdeterminant n_states\fP). .sp -Saves the energy in \fI\%EZFIO\fP\&. +The option for the PT2 correction are the “pt2_relative_error” which is the relative stochastic +.sp +error on the PT2 to reach before stopping the stochastic sampling. (see \fBperturbation pt2_relative_error\fP) .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBn_states\fP -.UNINDENT -.INDENT 2.0 -.UNINDENT -.INDENT 2.0 -.UNINDENT -.UNINDENT -.sp -Called by: -.INDENT 0.0 -.INDENT 2.0 +\fBis_zmq_slave\fP .IP \(bu 2 -\fBrun_cipsi()\fP +\fBmo_two_e_integrals_in_map\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBrun_stochastic_cipsi()\fP +\fBpsi_energy\fP +.IP \(bu 2 +\fBthreshold_generators\fP .UNINDENT .INDENT 2.0 +.IP \(bu 2 +\fBread_wf\fP .UNINDENT .UNINDENT .sp @@ -76,20 +64,52 @@ Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBezfio_set_fci_energy()\fP +\fBrun()\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBezfio_set_fci_energy_pt2()\fP +\fBrun_slave_cipsi()\fP .UNINDENT .INDENT 2.0 .UNINDENT .UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 +.IP \(bu 2 +\fBfock_matrix_ao_alpha\fP +.IP \(bu 2 +\fBfock_matrix_ao_alpha\fP +.IP \(bu 2 +\fBmo_coef\fP +.IP \(bu 2 +\fBdistributed_davidson\fP +.UNINDENT +.INDENT 2.0 +.IP \(bu 2 +\fBlevel_shift\fP +.IP \(bu 2 +\fBmo_coef\fP +.IP \(bu 2 +\fBpt2_e0_denominator\fP +.IP \(bu 2 +\fBpt2_stoch_istate\fP +.UNINDENT +.INDENT 2.0 +.IP \(bu 2 +\fBread_wf\fP +.IP \(bu 2 +\fBstate_average_weight\fP +.IP \(bu 2 +\fBthreshold_generators\fP +.UNINDENT +.UNINDENT .UNINDENT .UNINDENT .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/qp_convert_output_to_ezfio.1 b/man/qp_convert_output_to_ezfio.1 index 594f0b50..250852fc 100644 --- a/man/qp_convert_output_to_ezfio.1 +++ b/man/qp_convert_output_to_ezfio.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "QP_CONVERT_OUTPUT_TO_EZFIO" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "QP_CONVERT_OUTPUT_TO_EZFIO" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME qp_convert_output_to_ezfio \- | Quantum Package > . @@ -32,9 +32,10 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .sp This Python script uses the \fI\%resultsFile\fP Python library to gather the -geometry, AOs and MOs from output files of \fI\%GAMESS\fP or Gaussian, and puts -this data in an \fI\%EZFIO\fP database. Some constraints are necessary in the output -file : the run needs to be a single point HF, DFT or CAS SCF\&. +geometry, AOs and MOs from output files of \fI\%GAMESS\fP or Gaussian, and +puts this data in an \fI\%EZFIO\fP database. Some constraints are necessary +in the output file : the run needs to be a single point HF, DFT or +CAS SCF\&. .SH USAGE .INDENT 0.0 .INDENT 3.5 @@ -49,16 +50,16 @@ qp_convert_output_to_ezfio [\-o EZFIO_DIR] FILE .INDENT 0.0 .TP .B \-o, \-\-output=EZFIO_DIR -Renames the \fI\%EZFIO\fP directory. If this option is not present, the default -name fill be \fBFILE.ezfio\fP +Renames the \fI\%EZFIO\fP directory. If this option is not present, the +default name fill be \fBFILE.ezfio\fP .UNINDENT .sp \fBNOTE:\fP .INDENT 0.0 .INDENT 3.5 -All the parameters of the wave functgion need to be presente in the output -file : complete description of the AO basis set, full set of molecular -orbitals, etc. +All the parameters of the wave functgion need to be presente in the +output file : complete description of the AO basis set, full set of +molecular orbitals, etc. .sp The following keywords are necessary for GAU$$IAN .INDENT 0.0 @@ -87,6 +88,6 @@ qp_convert_output_to_ezfio h2o.out \-o h2o .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/qp_create_ezfio_from_xyz.1 b/man/qp_create_ezfio_from_xyz.1 new file mode 100644 index 00000000..06e8a21c --- /dev/null +++ b/man/qp_create_ezfio_from_xyz.1 @@ -0,0 +1,235 @@ +.\" Man page generated from reStructuredText. +. +.TH "QP_CREATE_EZFIO_FROM_XYZ" "1" "Jan 25, 2019" "2.0" "Quantum Package" +.SH NAME +qp_create_ezfio_from_xyz \- | Quantum Package > +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.sp +This command creates an \fI\%EZFIO\fP directory from a standard \fIxyz\fP file or +from a \fIz\-matrix\fP file in Gaussian format. +.SH USAGE +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +qp_create_ezfio [\-a] \-b [\-c ] [\-d ] + [\-h] [\-m ] [\-o EZFIO_DIR] [\-p ] [\-x] [\-\-] FILE +.ft P +.fi +.UNINDENT +.UNINDENT +.INDENT 0.0 +.TP +.B \-a, \-\-au +If present, input geometry is in atomic units. +.UNINDENT +.INDENT 0.0 +.TP +.B \-b, \-\-basis= +Name of basis set. The basis set is defined as a single string if +all the atoms are taken from the same basis set, otherwise specific +elements can be defined as follows: +.INDENT 7.0 +.INDENT 3.5 +.sp +.nf +.ft C +\-b "cc\-pcvdz | H:cc\-pvdz | C:6\-31g" +\-b "cc\-pvtz | 1,H:sto\-3g | 3,H:6\-31g" +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +By default, the basis set is obtained from the local database of the. +\fIQuantum Package\fP This option is mandatory . +.sp +If \fB\fP is set to \fBshow\fP, the list of all available basis +sets is displayed. +.UNINDENT +.INDENT 0.0 +.TP +.B \-c, \-\-charge= +Total charge of the molecule. Default is 0. +.UNINDENT +.INDENT 0.0 +.TP +.B \-d, \-\-dummy= +Add dummy atoms (X) between atoms when the distance between two atoms +is less than x \etimes \esum R_\emathrm{cov}, the covalent radii +of the atoms. The default is x=0, so no dummy atom is added. +.UNINDENT +.INDENT 0.0 +.TP +.B \-h, \-\-help +Print the help text and exit +.UNINDENT +.INDENT 0.0 +.TP +.B \-m, \-\-multiplicity= +Spin multiplicity 2S+1 of the molecule. Default is 1. +.UNINDENT +.INDENT 0.0 +.TP +.B \-o, \-\-output=EZFIO_DIR +Name of the created \fI\%EZFIO\fP directory. +.UNINDENT +.INDENT 0.0 +.TP +.B \-p , \-\-pseudo= +Name of the pseudo\-potential. Follows the same conventions as the basis set. +.UNINDENT +.INDENT 0.0 +.TP +.B \-x, \-\-cart +Compute AOs in the Cartesian basis set (6d, 10f, …) +.UNINDENT +.SH USING CUSTOM ATOMIC BASIS SETS +.sp +If a file with the same name as the basis set exists, this file will +be read. For example, if the file containing the basis set is named +\fBcustom.basis\fP, and the \fIxyz\fP geometry is in \fBmolecule.xyz\fP, the +following should be used: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +qp_create_ezfio \-b custom.basis molecule.xyz +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +Basis set files should be given in \fI\%GAMESS\fP format, where the full +names of the atoms are given, and the basis sets for each element are +separated by a blank line. Here is an example +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +HYDROGEN +S 3 +1 13.0100000 0.0196850 +2 1.9620000 0.1379770 +3 0.4446000 0.4781480 +S 1 +1 0.1220000 1.0000000 +P 1 +1 0.7270000 1.0000000 + +BORON +S 8 +1 4570.0000000 0.0006960 +2 685.9000000 0.0053530 +3 156.5000000 0.0271340 +4 44.4700000 0.1013800 +5 14.4800000 0.2720550 +6 5.1310000 0.4484030 +7 1.8980000 0.2901230 +8 0.3329000 0.0143220 +S 8 +1 4570.0000000 \-0.0001390 +2 685.9000000 \-0.0010970 +3 156.5000000 \-0.0054440 +4 44.4700000 \-0.0219160 +5 14.4800000 \-0.0597510 +6 5.1310000 \-0.1387320 +7 1.8980000 \-0.1314820 +8 0.3329000 0.5395260 +S 1 +1 0.1043000 1.0000000 +P 3 +1 6.0010000 0.0354810 +2 1.2410000 0.1980720 +3 0.3364000 0.5052300 +P 1 +1 0.0953800 1.0000000 +D 1 +1 0.3430000 1.0000000 +.ft P +.fi +.UNINDENT +.UNINDENT +.SH USING CUSTOM PSEUDO-POTENTIALS +.sp +As for the basis set, if a file with the same name as the +pseudo\-potential exists, this file will be read. For example, if the +file containing the custom pseudo\-potential is named \fBcustom.pseudo\fP, +the basis set is named \fBcustom.basis\fP, and the \fIxyz\fP geometry is in +\fBmolecule.xyz\fP, the following command should be used +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +qp_create_ezfio \-b custom.basis \-p custom.pseudo molecule.xyz +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +Pseudo\-potential files should be given in a format very close to +\fI\%GAMESS\fP format. The first line should be formatted as \fB%s GEN %d %d\fP +where the first string is the chemical symbol, the first integer is +the number of core electrons to be removed and the second integer is +LMAX+1 as in \fI\%GAMESS\fP format. The pseudo\-potential for each element are +separated by a blank line. Here is an example +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +Ne GEN 2 1 +3 +8.00000000 1 10.74945199 +85.99561593 3 10.19801460 +\-56.79004456 2 10.18694048 +1 +55.11144535 2 12.85042963 + +F GEN 2 1 +3 +7.00000000 1 11.39210685 +79.74474797 3 10.74911370 +\-49.45159098 2 10.45120693 +1 +50.25646328 2 11.30345826 +.ft P +.fi +.UNINDENT +.UNINDENT +.SH AUTHOR +A. Scemama, E. Giner +.SH COPYRIGHT +2019, A. Scemama, E. Giner +.\" Generated by docutils manpage writer. +. diff --git a/man/qp_edit.1 b/man/qp_edit.1 index 8816b8e9..d1cded7f 100644 --- a/man/qp_edit.1 +++ b/man/qp_edit.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "QP_EDIT" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "QP_EDIT" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME qp_edit \- | Quantum Package > . @@ -31,11 +31,12 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp -This command reads the content of the \fI\%EZFIO\fP directory and creates a temporary -file containing the data. The data is presented as a \fIReStructured Text\fP (rst) -document, where each section corresponds to the corresponding \fIQuantum Package\fP module. The -content of the file can be modified to change the input parameters. When the -text editor is closed, the updated data is saved into the \fI\%EZFIO\fP directory. +This command reads the content of the \fI\%EZFIO\fP directory and creates +a temporary file containing the data. The data is presented as a +\fIReStructured Text\fP (rst) document, where each section corresponds to +the corresponding \fIQuantum Package\fP module. The content of the file can be modified +to change the input parameters. When the text editor is closed, the +updated data is saved into the \fI\%EZFIO\fP directory. .sp \fBNOTE:\fP .INDENT 0.0 @@ -53,6 +54,25 @@ When the wave function is too large (more than 10 000 determinants), the determinants are not displayed. .UNINDENT .UNINDENT +.sp +\fBNOTE:\fP +.INDENT 0.0 +.INDENT 3.5 +On some machines the terminal will be stuck in inverted colors after using +qp_edit. To Avoid this problem, put in your \fB$HOME/.vimrc\fP: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +set t_ti= +set t_te= +.ft P +.fi +.UNINDENT +.UNINDENT +.UNINDENT +.UNINDENT .SH USAGE .INDENT 0.0 .INDENT 3.5 @@ -97,11 +117,11 @@ qp_edit \-\-state="[1,3\-5]" test.ezfio .UNINDENT .UNINDENT .sp -Removes all states except states 1,3,4 and 5 from \fBtest.ezfio\fP\&. The -resulting \fI\%EZFIO\fP directory has 4 states. +Removes all states except states 1,3,4 and 5 from \fBtest.ezfio\fP\&. +The resulting \fI\%EZFIO\fP directory has 4 states. .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/qp_export_as_tgz.1 b/man/qp_export_as_tgz.1 index 0c672ce8..0363eebb 100644 --- a/man/qp_export_as_tgz.1 +++ b/man/qp_export_as_tgz.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "QP_EXPORT_AS_TGZ" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "QP_EXPORT_AS_TGZ" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME qp_export_as_tgz \- | Quantum Package > . @@ -31,13 +31,13 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp -In some HPC facilities, the access to the internet is limited for security -reasons. In such an environment, the installation of \fIQuantum Package\fP is sometimes very -painful because the OCaml compiler and the libraries can’t be installed by a -non\-root user. +In some HPC facilities, the access to the internet is limited for +security reasons. In such an environment, the installation of \fIQuantum Package\fP is +sometimes very painful because the OCaml compiler and the libraries +can’t be installed by a non\-root user. .sp -This command creates a self\-contained binary distribution in the form of a -\fItar.gz\fP file that can be copied on another machine. +This command creates a self\-contained binary distribution in the form of +a \fItar.gz\fP file that can be copied on another machine. .SH USAGE .INDENT 0.0 .INDENT 3.5 @@ -65,6 +65,6 @@ compiled should be the oldest one. .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/qp_plugins.1 b/man/qp_plugins.1 index 35a09d9b..2a63d809 100644 --- a/man/qp_plugins.1 +++ b/man/qp_plugins.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "QP_PLUGINS" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "QP_PLUGINS" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME qp_plugins \- | Quantum Package > . @@ -31,9 +31,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp -This command deals with all external plugins of \fIQuantum Package\fP\&. Plugin repositories can -be downloaded, and the plugins in these repositories can be -installed/uninstalled or created. +This command deals with all external plugins of \fIQuantum Package\fP\&. Plugin +repositories can be downloaded, and the plugins in these repositories +can be installed/uninstalled or created. .SH USAGE .INDENT 0.0 .INDENT 3.5 @@ -106,8 +106,8 @@ Specify in which repository the new plugin will be created. Let us download, install and compile some specific external plugins from \fI\%https://gitlab.com/eginer/qp_plugins_eginer\fP . .sp -First, download the git repo associated to these plugins. To do so, first go -to the \fIplugins\fP directory in the \fIQuantum Package\fP and execute: +First, download the git repo associated to these plugins. To do so, +first go to the \fIplugins\fP directory in the \fIQuantum Package\fP and execute: .INDENT 0.0 .INDENT 3.5 .sp @@ -119,8 +119,9 @@ qp_plugins download https://gitlab.com/eginer/qp_plugins_eginer .UNINDENT .UNINDENT .sp -This will create in the directory \fIplugins\fP a local copy of the git repo -located at the URL you indicated. Then, go in \fIqp_plugins_eginer/stable/\fP +This will create in the directory \fIplugins\fP a local copy of +the git repo located at the URL you indicated. Then, go in +\fIqp_plugins_eginer/stable/\fP .INDENT 0.0 .INDENT 3.5 .sp @@ -132,10 +133,10 @@ cd qp_plugins_eginer/stable/ .UNINDENT .UNINDENT .sp -In the directory \fIstable\fP, there are many directories which all correspond to a -specific plugin that have been developed by the person in charge of the git -repo. All these plugins might use some global variables and routines contained -in the core modules of the \fIQuantum Package\fP\&. +In the directory \fIstable\fP, there are many directories which all +correspond to a specific plugin that have been developed by the person +in charge of the repository. All these plugins might use some global +variables and routines contained in the core modules of the \fIQuantum Package\fP\&. .sp Now let us install the plugin \fIrsdft_cipsi\fP: .INDENT 0.0 @@ -149,13 +150,13 @@ qp_plugins install rsdft_cipsi .UNINDENT .UNINDENT .sp -This will link this directory to the \fIQuantum Package\fP which means that when the code will -be compiled, this plugin will be compiled to and therefore all the -executables/scripts/input keywords contained in this module will be available -as if there were part of the core of the \fIQuantum Package\fP\&. +This will link this directory to the \fIQuantum Package\fP which means that when the code +will be compiled, this plugin will be compiled to and therefore all the +executables/scripts/input keywords contained in this module will be +available as if there were part of the core of the \fIQuantum Package\fP\&. .sp -Then, to compile the new plugin, just recompile the \fIQuantum Package\fP as usual by going at -the root of the \fIQuantum Package\fP directory: +Then, to compile the new plugin, just recompile the \fIQuantum Package\fP as usual by +going at the root of the \fIQuantum Package\fP directory: .INDENT 0.0 .INDENT 3.5 .sp @@ -168,12 +169,12 @@ ninja .UNINDENT .UNINDENT .sp -Finally, if you go back to the plugin directory you just installed, you should see -all the executables/scripts which have been created and which are now available -with the \fIqp_run\fP command. +Finally, if you go back to the plugin directory you just installed, you +should see all the executables/scripts which have been created and which +are now available with the \fIqp_run\fP command. .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/qp_run.1 b/man/qp_run.1 index 5512094f..976a7318 100644 --- a/man/qp_run.1 +++ b/man/qp_run.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "QP_RUN" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "QP_RUN" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME qp_run \- | Quantum Package > . @@ -32,6 +32,26 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .sp Command used to run a calculation. +.sp +If the \fBUSR1\fP signal is sent to \fI\%qp_run\fP, the application will +call qp_stop to request a clean termination. In a SLURM script, +you can ask SLURM to send the \fBUSR1\fP signal 120 seconds before end of +the time limit with +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +#SBATCH \-\-signal=B:USR1@120 +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +There is a directory named \fBwork\fP in the \fI\%EZFIO\fP\&. This directory +will contain work files which can be large, so it is recommended to +work in the scratch directory. To archive the \fI\%EZFIO\fP directory, it is +recommended to remove the \fBwork\fP directory. .SH USAGE .INDENT 0.0 .INDENT 3.5 @@ -44,8 +64,8 @@ qp_run [\-h] [\-p ] [\-s] [\-\-] PROGRAM EZFIO_DIR .UNINDENT .UNINDENT .sp -\fBPROGRAM\fP is the name of the \fIQuantum Package\fP program to be run, and \fBEZFIO_DIR\fP is -the name of the \fI\%EZFIO\fP directory containing the data. +\fBPROGRAM\fP is the name of the \fIQuantum Package\fP program to be run, and \fBEZFIO_DIR\fP +is the name of the \fI\%EZFIO\fP directory containing the data. .INDENT 0.0 .TP .B \-h, \-\-help @@ -54,14 +74,14 @@ Displays the list of available \fIQuantum Package\fP programs. .INDENT 0.0 .TP .B \-p , \-\-prefix= -Prefix before running the program. This option is used to run programs like -like gdb or valgrind. +Prefix before running the program. This option is used to run +programs like like gdb or valgrind. .UNINDENT .INDENT 0.0 .TP .B \-s, \-\-slave -This option needs to be set to run a slave job for \fBPROGRAM\fP, to accelerate -another running instance of the \fIQuantum Package\fP\&. +This option needs to be set to run a slave job for \fBPROGRAM\fP, to +accelerate another running instance of the \fIQuantum Package\fP\&. .UNINDENT .SH EXAMPLE .INDENT 0.0 @@ -79,6 +99,6 @@ wait .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/qp_set_frozen_core.1 b/man/qp_set_frozen_core.1 index e39cc516..24f87b09 100644 --- a/man/qp_set_frozen_core.1 +++ b/man/qp_set_frozen_core.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "QP_SET_FROZEN_CORE" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "QP_SET_FROZEN_CORE" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME qp_set_frozen_core \- | Quantum Package > . @@ -31,15 +31,15 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp -Automatically finds n, the number of core electrons. Calls -qp_set_mo_class setting all MOs as \fBActive\fP, except the n/2 -first ones which are set as \fBCore\fP\&. If pseudo\-potentials are used, all the -MOs are set as \fBActive\fP\&. +Automatically finds \fIn\fP, the number of core electrons. Calls +qp_set_mo_class setting all MOs as \fBActive\fP, except the +n/2 first ones which are set as \fBCore\fP\&. If pseudo\-potentials +are used, all the MOs are set as \fBActive\fP\&. .sp -For elements on the right of the periodic table, \fIqp_set_frozen_core\fP will -work as expected. But for elements on the left, a small core will be chosen. For -example, a Carbon atom will have 2 core electrons, but a Lithium atom will have -zero. +For elements on the right of the periodic table, \fIqp_set_frozen_core\fP +will work as expected. But for elements on the left, a small core will +be chosen. For example, a Carbon atom will have 2 core electrons, but a +Lithium atom will have zero. .SH USAGE .INDENT 0.0 .INDENT 3.5 @@ -59,6 +59,6 @@ Prints in the standard output the number of core electrons. .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/qp_set_mo_class.1 b/man/qp_set_mo_class.1 index be03386c..a97f50e3 100644 --- a/man/qp_set_mo_class.1 +++ b/man/qp_set_mo_class.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "QP_SET_MO_CLASS" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "QP_SET_MO_CLASS" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME qp_set_mo_class \- | Quantum Package > . @@ -106,6 +106,6 @@ Range of virtual orbitals .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/qp_stop.1 b/man/qp_stop.1 new file mode 100644 index 00000000..35fa3082 --- /dev/null +++ b/man/qp_stop.1 @@ -0,0 +1,65 @@ +.\" Man page generated from reStructuredText. +. +.TH "QP_STOP" "1" "Jan 25, 2019" "2.0" "Quantum Package" +.SH NAME +qp_stop \- | Quantum Package > +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.sp +Requests for a clean termination of the program. +.sp +This will have the effect to exit the Davidson diagonalization, the +SCF procedure or the determinant selection to save the current wave +function and exit the program. +.SH USAGE +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +qp_stop [\-chq] EZFIO_DIR +.ft P +.fi +.UNINDENT +.UNINDENT +.INDENT 0.0 +.TP +.B \-c, \-\-cancel +Cancel the qp_stop order. +.UNINDENT +.INDENT 0.0 +.TP +.B \-q, \-\-query +Ask if \fBEZFIO_DIR\fP was requested to stop. +.UNINDENT +.SH AUTHOR +A. Scemama, E. Giner +.SH COPYRIGHT +2019, A. Scemama, E. Giner +.\" Generated by docutils manpage writer. +. diff --git a/man/qp_update.1 b/man/qp_update.1 index 553c8142..4ee9654c 100644 --- a/man/qp_update.1 +++ b/man/qp_update.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "QP_UPDATE" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "QP_UPDATE" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME qp_update \- | Quantum Package > . @@ -46,6 +46,6 @@ qp_update [\-h] .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/qpsh.1 b/man/qpsh.1 index 68d8e039..c445c006 100644 --- a/man/qpsh.1 +++ b/man/qpsh.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "QPSH" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "QPSH" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME qpsh \- | Quantum Package > . @@ -31,14 +31,14 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp -\fBqpsh\fP is the \fIQuantum Package\fP shell. It is a Bash shell with all -the required evironment variables loaded, a modified prompt, and the +\fBqpsh\fP is the \fIQuantum Package\fP shell. It is a Bash shell with all the +required evironment variables loaded, a modified prompt, and the \fI\%qp\fP command. .SH QP .sp -This command is a hub to the most used command within \fIQuantum Package\fP\&. -The power of the \fI\%qpsh\fP shell is the auto\-completion that comes -when the \fB\fP key is pressed with the \fI\%qp\fP command. +This command is a hub to the most used command within \fIQuantum Package\fP\&. The power +of the \fI\%qpsh\fP shell is the auto\-completion that comes when the +\fB\fP key is pressed with the \fI\%qp\fP command. .SS EZFIO access .INDENT 0.0 .TP @@ -156,6 +156,11 @@ qp (run|srun|mpirun) [options] Runs qp_run, qp_srun, or qp_mpirun using the current \fI\%EZFIO\fP directory. .UNINDENT +.INDENT 0.0 +.TP +.B stop +\fBqp stop\fP : runs qp_stop +.UNINDENT .SS Getting help .INDENT 0.0 .TP @@ -218,6 +223,6 @@ The \fBqp_\fP commands can be run without specifying the \fI\%EZFIO\fP directory .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/rs_ks_scf.1 b/man/rs_ks_scf.1 index fe9b46f1..2c7a715e 100644 --- a/man/rs_ks_scf.1 +++ b/man/rs_ks_scf.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "RS_KS_SCF" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "RS_KS_SCF" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME rs_ks_scf \- | Quantum Package > . @@ -32,8 +32,6 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBrs_ks_scf.irp.f\fP -.sp Produce \fIRange_separated_Kohn_Sham\fP MO orbital output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ output: kohn_sham.energy @@ -113,6 +111,6 @@ Touches: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/save_natorb.1 b/man/save_natorb.1 index f818b035..b46fdad8 100644 --- a/man/save_natorb.1 +++ b/man/save_natorb.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SAVE_NATORB" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "SAVE_NATORB" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME save_natorb \- | Quantum Package > . @@ -32,49 +32,61 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 +Save natural MOs into the EZFIO .sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT -.UNINDENT +This program reads the wave function stored in the EZFIO folder, +.sp +extracts the corresponding natural orbitals and set them as the new MOs +.sp +If this is a multi\-state calculation, the density matrix that produces the natural orbitals +.sp +is obtained from a state\-averaged of the density matrices of each state with the corresponding state_average_weight (see the doc of state_average_weight). .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP -.IP \(bu 2 -\fBmo_coef\fP -.IP \(bu 2 -\fBao_num\fP +\fBread_wf\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_l_char_space\fP -.IP \(bu 2 -\fBnucl_charge\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_nucl\fP -.IP \(bu 2 -\fBelement_name\fP .UNINDENT .UNINDENT .sp -Called by: +Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmolden()\fP +\fBezfio_set_mo_one_e_ints_io_mo_integrals_e_n()\fP +.IP \(bu 2 +\fBezfio_set_mo_one_e_ints_io_mo_integrals_kinetic()\fP +.IP \(bu 2 +\fBezfio_set_mo_one_e_ints_io_mo_integrals_pseudo()\fP .UNINDENT .INDENT 2.0 +.IP \(bu 2 +\fBezfio_set_mo_one_e_ints_io_mo_one_e_integrals()\fP +.IP \(bu 2 +\fBezfio_set_mo_two_e_ints_io_mo_two_e_integrals()\fP +.UNINDENT +.INDENT 2.0 +.IP \(bu 2 +\fBsave_natural_mos()\fP +.IP \(bu 2 +\fBsave_ref_determinant()\fP +.UNINDENT +.UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 +.IP \(bu 2 +\fBmo_occ\fP +.UNINDENT +.INDENT 2.0 +.IP \(bu 2 +\fBread_wf\fP .UNINDENT .INDENT 2.0 .UNINDENT @@ -84,6 +96,6 @@ Called by: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/save_one_e_dm.1 b/man/save_one_e_dm.1 index 943f0f90..80fb6ff2 100644 --- a/man/save_one_e_dm.1 +++ b/man/save_one_e_dm.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SAVE_ONE_E_DM" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "SAVE_ONE_E_DM" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME save_one_e_dm \- | Quantum Package > . @@ -32,47 +32,42 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 +programs that computes the one body density on the mo basis for alpha and beta electrons +from the wave function stored in the EZFIO folder, and then save it into the EZFIO folder aux_quantities. .sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT -.UNINDENT +Then, the global variable data_one_e_dm_alpha_mo and data_one_e_dm_beta_mo will automatically read this density in a further calculation. +.sp +This can be used to perform damping on the density in RS\-DFT calculation (see the density_for_dft module). .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP -.IP \(bu 2 -\fBmo_coef\fP -.IP \(bu 2 -\fBao_num\fP +\fBread_wf\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_l_char_space\fP -.IP \(bu 2 -\fBnucl_charge\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_nucl\fP -.IP \(bu 2 -\fBelement_name\fP .UNINDENT .UNINDENT .sp -Called by: +Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmolden()\fP +\fBroutine_save_one_e_dm()\fP +.UNINDENT +.INDENT 2.0 +.UNINDENT +.INDENT 2.0 +.UNINDENT +.UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 +.IP \(bu 2 +\fBread_wf\fP .UNINDENT .INDENT 2.0 .UNINDENT @@ -84,6 +79,6 @@ Called by: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/save_ortho_mos.1 b/man/save_ortho_mos.1 index d0258557..0cdfc0ce 100644 --- a/man/save_ortho_mos.1 +++ b/man/save_ortho_mos.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SAVE_ORTHO_MOS" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "SAVE_ORTHO_MOS" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME save_ortho_mos \- | Quantum Package > . @@ -32,49 +32,37 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 +Save orthonormalized MOs in the EZFIO. .sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT -.UNINDENT +This program reads the current MOs, computes the corresponding overlap matrix in the MO basis .sp -Needs: +and perform a Lowdin orthonormalization : MO_{new} = S^{\-1/2} MO_{guess}\&. +.sp +Thanks to the Lowdin orthonormalization, the new MOs are the most similar to the guess MOs. +.sp +Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP +\fBorthonormalize_mos()\fP +.UNINDENT +.INDENT 2.0 +.IP \(bu 2 +\fBsave_mos()\fP +.UNINDENT +.INDENT 2.0 +.UNINDENT +.UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 .IP \(bu 2 \fBmo_coef\fP -.IP \(bu 2 -\fBao_num\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBao_l_char_space\fP -.IP \(bu 2 -\fBnucl_charge\fP -.UNINDENT -.INDENT 2.0 -.IP \(bu 2 -\fBao_nucl\fP -.IP \(bu 2 -\fBelement_name\fP -.UNINDENT -.UNINDENT -.sp -Called by: -.INDENT 0.0 -.INDENT 2.0 -.IP \(bu 2 -\fBmolden()\fP -.UNINDENT -.INDENT 2.0 +\fBmo_label\fP .UNINDENT .INDENT 2.0 .UNINDENT @@ -84,6 +72,6 @@ Called by: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/scf.1 b/man/scf.1 index dbd99ea4..cc0d3b14 100644 --- a/man/scf.1 +++ b/man/scf.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SCF" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "SCF" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME scf \- | Quantum Package > . @@ -32,15 +32,37 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBhartree_fock/scf.irp.f\fP +The \fI\%scf\fP program performs \fIRestricted\fP Hartree\-Fock +calculations (the spatial part of the MOs is common for alpha and beta +spinorbitals). .sp -Produce \fIHartree_Fock\fP MOs +It performs the following actions: +.INDENT 0.0 +.IP 1. 3 +Compute/Read all the one\- and two\-electron integrals, and store them +in memory +.IP 2. 3 +Check in the \fI\%EZFIO\fP database if there is a set of MOs\&. +If there is, it will read them as initial guess. Otherwise, it will +create a guess. +.IP 3. 3 +Perform the SCF iterations +.UNINDENT .sp -output: mo_basis.mo_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ +For the keywords related to the SCF procedure, see the \fBscf_utils\fP +directory where you will find all options. .sp -output: hartree_fock.energy +At each iteration, the MOs are saved in the \fI\%EZFIO\fP database. Hence, +if the calculation crashes for any unexpected reason, the calculation +can be restarted by running again the SCF with the same \fI\%EZFIO\fP +database. .sp -optional: mo_basis.mo_coef +To start again a fresh SCF calculation, the MOs can be reset by +running the qp_reset command. +.sp +The \fI\%DIIS\fP algorithm is implemented, as well as the \fI\%level\-shifting\fP +method. If the SCF does not converge, try again with a higher value of +\fBlevel_shift\fP\&. .sp Calls: .INDENT 0.0 @@ -88,6 +110,6 @@ Touches: .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/man/write_integrals_erf.1 b/man/write_integrals_erf.1 index 746886ba..45689b7b 100644 --- a/man/write_integrals_erf.1 +++ b/man/write_integrals_erf.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "WRITE_INTEGRALS_ERF" "1" "Jan 17, 2019" "2.0" "Quantum Package" +.TH "WRITE_INTEGRALS_ERF" "1" "Jan 25, 2019" "2.0" "Quantum Package" .SH NAME write_integrals_erf \- | Quantum Package > . @@ -32,58 +32,52 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .. .INDENT 0.0 .INDENT 3.5 -File : \fBmolden.irp.f\fP -.INDENT 0.0 -.INDENT 3.5 -.sp -.nf -.ft C -subroutine write_Mo_basis(i_unit_output) -.ft P -.fi -.UNINDENT -.UNINDENT +Saves the two\-electron integrals with the erf(\emu r_{12})/r_{12} oprerator into the EZFIO folder .sp Needs: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmo_num\fP -.IP \(bu 2 -\fBmo_coef\fP -.IP \(bu 2 -\fBao_num\fP +\fBio_mo_two_e_integrals\fP .UNINDENT .INDENT 2.0 .IP \(bu 2 -\fBao_l_char_space\fP -.IP \(bu 2 -\fBnucl_charge\fP +\fBio_ao_two_e_integrals\fP .UNINDENT .INDENT 2.0 -.IP \(bu 2 -\fBao_nucl\fP -.IP \(bu 2 -\fBelement_name\fP .UNINDENT .UNINDENT .sp -Called by: +Calls: .INDENT 0.0 .INDENT 2.0 .IP \(bu 2 -\fBmolden()\fP +\fBroutine()\fP .UNINDENT .INDENT 2.0 .UNINDENT .INDENT 2.0 .UNINDENT .UNINDENT +.sp +Touches: +.INDENT 0.0 +.INDENT 2.0 +.IP \(bu 2 +\fBio_ao_two_e_integrals\fP +.UNINDENT +.INDENT 2.0 +.IP \(bu 2 +\fBio_mo_two_e_integrals\fP +.UNINDENT +.INDENT 2.0 +.UNINDENT +.UNINDENT .UNINDENT .UNINDENT .SH AUTHOR A. Scemama, E. Giner .SH COPYRIGHT -2018, A. Scemama, E. Giner +2019, A. Scemama, E. Giner .\" Generated by docutils manpage writer. . diff --git a/scripts/module/module_handler.py b/scripts/module/module_handler.py index 119736e3..160a1ce9 100755 --- a/scripts/module/module_handler.py +++ b/scripts/module/module_handler.py @@ -233,7 +233,7 @@ if __name__ == '__main__': l_dir = ['IRPF90_temp', 'IRPF90_man'] l_file = ["irpf90_entities", "tags", "irpf90.make", "Makefile", - "Makefile.depend", ".ninja_log", ".ninja_deps", "build.ninja", + "Makefile.depend", ".ninja_log", ".ninja_deps", "ezfio_interface.irp.f"] for module in l_module: diff --git a/src/tools/print_bitmask.irp.f b/src/tools/print_bitmask.irp.f deleted file mode 100644 index f2522964..00000000 --- a/src/tools/print_bitmask.irp.f +++ /dev/null @@ -1,33 +0,0 @@ -program print_bitmasks - call routine -end - -subroutine routine - implicit none - integer :: i - do i = 1, mo_num - print*,i ,'',mo_class(i) - enddo - print*, 'core' - do i = 1, n_core_orb - print*, list_core(i) - enddo - call debug_det(core_bitmask, N_int) - print*, 'inact' - do i = 1, n_inact_orb - print*, list_inact(i) - enddo - call debug_det(inact_bitmask, N_int) - print*, 'act' - do i = 1, n_act_orb - print*, list_act(i) - enddo - call debug_det(act_bitmask, N_int) - print*, 'virt' - do i = 1, n_virt_orb - print*, list_virt(i) - enddo - call debug_det(virt_bitmask, N_int) - -end -