diff --git a/INSTALL.rst b/INSTALL.rst index 59a680d7..131e1bda 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -25,9 +25,8 @@ sets all the environment variables required for the normal operation of the Running this script will also tell you which external dependencies are missing and need to be installed. -Then, source the :file:`quantum_package.rc` file in your current shell before -installing the dependencies. - +When all dependencies have been installed, ( the :command:`configure` will tell you) +source the :file:`quantum_package.rc` in order to load all environment variables and compile the |QP|. Requirements @@ -71,6 +70,52 @@ architecture. Modify it if needed, and run :command:`configure` with Help for installing external dependencies ========================================= +Using the :command:`configure` executable +----------------------------------------- + +The :command:`configure` executable can help you in installing the minimal dependencies you will need to compile the |QP|. +The command is to be used as follows: + +.. code:: bash + + ./configure --install + +The following packages are supported by the :command:`configure` installer: + +* ninja +* irpf90 +* zeromq +* f77zmq ( :math:`\approx` 3 minutes) +* ocaml +* ezfio +* emsl +* docopt +* resultsFile +* bats + +Example: + +.. code:: bash + + ./configure -i ezfio + +.. note:: + + When installing the ocaml package, you will be asked the location of where it should be installed. + A safe option is to enter the path proposed by the |QP|: + + QP>> Please install it here: /your_quantum_package_directory/bin + + So just enter the proposition of the |QP| and press enter. + + +If the :command:`configure` executable fails to install a specific dependency +----------------------------------------------------------------------------- + +If the :command:`configure` executable does not succeed to install a specific dependency, +there are some proposition of how to download and install the minimal dependencies to compile and use the |QP| + + Before doing anything below, try to install the packages with your package manager (:command:`apt`, :command:`yum`, etc) diff --git a/TODO b/TODO index cfb152b5..78fa79cd 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,7 @@ +============ +Probleme with EMSL + + * Mettre le fichier LIB * Faire que le slave de Hartree-fock est le calcul des integrales AO en parallele diff --git a/docs/source/index.rst b/docs/source/index.rst index 0e068bd3..2d176985 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -38,6 +38,7 @@ programmers_guide/programming programmers_guide/ezfio programmers_guide/index + programmers_guide/plugins .. toctree:: diff --git a/docs/source/intro/selected_ci.rst b/docs/source/intro/selected_ci.rst index 41ba8820..443a678f 100644 --- a/docs/source/intro/selected_ci.rst +++ b/docs/source/intro/selected_ci.rst @@ -105,13 +105,25 @@ The determinants in |SetDI| will be characterized as **internal**. Of course, such a procedure can be applied on any state and therefore can allow to treat both ground and excited states. -Approximations to accelerate the selection ------------------------------------------- +Stochastic approximations for the selection and the computation of |EPT| +------------------------------------------------------------------------ The simple algorithm would be too slow to make calculations possible. Instead, -we use the 3-class |CIPSI| approximation to accelerate the selection, -:cite:`Evangelisti_1983` where instead of generating all possible |kalpha|, -we only generate a subset which are likely to be selected. +the |QP| uses a stochastic algorithm :cite:`Garniron_2017.2` in order to compute +efficiently the |EPT| and to select on-the-fly the best Slater determinants. + +In such a way, the selection step introduces no extra cost with respect to the |EPT| calculation and the |EPT| +itself is unbiased but associated with a statistical error bar rapidly converging. + + +Deterministic approximations for the selection +---------------------------------------------- + +The following description was used in a previous version of the |CIPSI| algorithm +which was less efficient. Nonetheless, it introduces the notions of **generator** and **selector** determinants +which are much more general than the |CIPSI| algorithm that targets the |FCI| and can be used to realize virtually +**any kind of CI in a selected way**. + We define **generator** determinants, as determinants of the internal space from which the |kalpha| are generated. @@ -124,6 +136,11 @@ The default is to use :option:`determinants threshold_generators` = 0.99 for the generators, and :option:`determinants threshold_selectors` = 0.999 for the selectors. +This is nothing but the 3-class |CIPSI| approximation to accelerate the selection, +:cite:`Evangelisti_1983` where instead of generating all possible |kalpha|, +we only generate a subset which are likely to be selected. + + The computation of |EPT| using a truncated wave function is biased, so if an accurate estimate of the |FCI| energy is desired, it is preferable to recompute |EPT| with the hybrid deterministic/stochastic algorithm @@ -147,7 +164,7 @@ a selected |CAS-SD|. And if one add the rule to prevent for doing double excitations with two holes and two particles outside of the active space, one obtains a selected |DDCI| method. -All such things can be done very easily when programming the the |qp|. +All such things can be done very easily when programming the |qp|. ----------------------------------- diff --git a/docs/source/modules/cipsi.rst b/docs/source/modules/cipsi.rst index 935a8933..bf084f35 100644 --- a/docs/source/modules/cipsi.rst +++ b/docs/source/modules/cipsi.rst @@ -755,6 +755,20 @@ Subroutines / functions +.. c:function:: remove_duplicates_in_selection_buffer + + .. code:: text + + subroutine remove_duplicates_in_selection_buffer(b) + + File: :file:`selection_buffer.irp.f` + + + + + + + .. c:function:: run_cipsi .. code:: text diff --git a/docs/source/modules/davidson.rst b/docs/source/modules/davidson.rst index dbc7f628..f2d9fbe7 100644 --- a/docs/source/modules/davidson.rst +++ b/docs/source/modules/davidson.rst @@ -449,7 +449,7 @@ Subroutines / functions subroutine H_S2_u_0_nstates_openmp_work_1(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) - File: :file:`u0_h_u0.irp.f_template_468` + File: :file:`u0_h_u0.irp.f_template_477` Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle` @@ -465,7 +465,7 @@ Subroutines / functions subroutine H_S2_u_0_nstates_openmp_work_2(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) - File: :file:`u0_h_u0.irp.f_template_468` + File: :file:`u0_h_u0.irp.f_template_477` Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle` @@ -481,7 +481,7 @@ Subroutines / functions subroutine H_S2_u_0_nstates_openmp_work_3(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) - File: :file:`u0_h_u0.irp.f_template_468` + File: :file:`u0_h_u0.irp.f_template_477` Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle` @@ -497,7 +497,7 @@ Subroutines / functions subroutine H_S2_u_0_nstates_openmp_work_4(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) - File: :file:`u0_h_u0.irp.f_template_468` + File: :file:`u0_h_u0.irp.f_template_477` Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle` @@ -513,7 +513,7 @@ Subroutines / functions subroutine H_S2_u_0_nstates_openmp_work_N_int(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep) - File: :file:`u0_h_u0.irp.f_template_468` + File: :file:`u0_h_u0.irp.f_template_477` Computes :math:`v_t = H|u_t angle` and :math:`s_t = S^2 |u_t angle` diff --git a/docs/source/modules/determinants.rst b/docs/source/modules/determinants.rst index c2d56042..715d065a 100644 --- a/docs/source/modules/determinants.rst +++ b/docs/source/modules/determinants.rst @@ -451,7 +451,7 @@ Providers integer(bit_kind), allocatable :: psi_det_alpha_unique (N_int,psi_det_size) integer :: n_det_alpha_unique - File: :file:`spindeterminants.irp.f_template_141` + File: :file:`spindeterminants.irp.f_template_143` Unique :math:`\alpha` determinants @@ -465,7 +465,7 @@ Providers integer(bit_kind), allocatable :: psi_det_beta_unique (N_int,psi_det_size) integer :: n_det_beta_unique - File: :file:`spindeterminants.irp.f_template_141` + File: :file:`spindeterminants.irp.f_template_143` Unique :math:`\beta` determinants @@ -1215,7 +1215,7 @@ Providers integer(bit_kind), allocatable :: psi_det_alpha_unique (N_int,psi_det_size) integer :: n_det_alpha_unique - File: :file:`spindeterminants.irp.f_template_141` + File: :file:`spindeterminants.irp.f_template_143` Unique :math:`\alpha` determinants @@ -1242,7 +1242,7 @@ Providers integer(bit_kind), allocatable :: psi_det_beta_unique (N_int,psi_det_size) integer :: n_det_beta_unique - File: :file:`spindeterminants.irp.f_template_141` + File: :file:`spindeterminants.irp.f_template_143` Unique :math:`\beta` determinants @@ -2337,7 +2337,7 @@ Subroutines / functions subroutine get_all_spin_doubles_2(buffer, idx, spindet, size_buffer, doubles, n_doubles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2355,7 +2355,7 @@ Subroutines / functions subroutine get_all_spin_doubles_3(buffer, idx, spindet, size_buffer, doubles, n_doubles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2373,7 +2373,7 @@ Subroutines / functions subroutine get_all_spin_doubles_4(buffer, idx, spindet, size_buffer, doubles, n_doubles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2391,7 +2391,7 @@ Subroutines / functions subroutine get_all_spin_doubles_N_int(buffer, idx, spindet, size_buffer, doubles, n_doubles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2445,7 +2445,7 @@ Subroutines / functions subroutine get_all_spin_singles_2(buffer, idx, spindet, size_buffer, singles, n_singles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2463,7 +2463,7 @@ Subroutines / functions subroutine get_all_spin_singles_3(buffer, idx, spindet, size_buffer, singles, n_singles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2481,7 +2481,7 @@ Subroutines / functions subroutine get_all_spin_singles_4(buffer, idx, spindet, size_buffer, singles, n_singles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2539,7 +2539,7 @@ Subroutines / functions subroutine get_all_spin_singles_and_doubles_2(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2559,7 +2559,7 @@ Subroutines / functions subroutine get_all_spin_singles_and_doubles_3(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2579,7 +2579,7 @@ Subroutines / functions subroutine get_all_spin_singles_and_doubles_4(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2599,7 +2599,7 @@ Subroutines / functions subroutine get_all_spin_singles_and_doubles_N_int(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` @@ -2619,7 +2619,7 @@ Subroutines / functions subroutine get_all_spin_singles_N_int(buffer, idx, spindet, size_buffer, singles, n_singles) - File: :file:`spindeterminants.irp.f_template_1218` + File: :file:`spindeterminants.irp.f_template_1221` diff --git a/docs/source/modules/dft_utils_one_e.rst b/docs/source/modules/dft_utils_one_e.rst index 09708468..5ed535d1 100644 --- a/docs/source/modules/dft_utils_one_e.rst +++ b/docs/source/modules/dft_utils_one_e.rst @@ -1090,14 +1090,12 @@ Providers .. code:: text - double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states) - double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states) double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states) double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states) File: :file:`sr_pot_ao.irp.f` - short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis + short range correlation alpha/beta potentials with LDA functional on the |AO| basis @@ -1122,14 +1120,12 @@ Providers .. code:: text - double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states) - double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states) double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states) double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states) File: :file:`sr_pot_ao.irp.f` - short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis + short range correlation alpha/beta potentials with LDA functional on the |AO| basis @@ -1156,12 +1152,10 @@ Providers double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states) double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states) - double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states) - double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states) File: :file:`sr_pot_ao.irp.f` - short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis + short range exchange alpha/beta potentials with LDA functional on the |AO| basis @@ -1188,12 +1182,10 @@ Providers double precision, allocatable :: potential_sr_x_alpha_ao_lda (ao_num,ao_num,N_states) double precision, allocatable :: potential_sr_x_beta_ao_lda (ao_num,ao_num,N_states) - double precision, allocatable :: potential_sr_c_alpha_ao_lda (ao_num,ao_num,N_states) - double precision, allocatable :: potential_sr_c_beta_ao_lda (ao_num,ao_num,N_states) File: :file:`sr_pot_ao.irp.f` - short range exchange/correlation alpha/beta potentials with LDA functional on the AO basis + short range exchange alpha/beta potentials with LDA functional on the |AO| basis diff --git a/docs/source/modules/fci.rst b/docs/source/modules/fci.rst index 35f79f49..d4dce0d8 100644 --- a/docs/source/modules/fci.rst +++ b/docs/source/modules/fci.rst @@ -36,6 +36,23 @@ EZFIO parameters +Providers +--------- + + +.. c:var:: nthreads_pt2 + + .. code:: text + + integer :: nthreads_pt2 + + File: :file:`environment.irp.f` + + Number of threads for Davidson + + + + Subroutines / functions ----------------------- diff --git a/docs/source/modules/hartree_fock.rst b/docs/source/modules/hartree_fock.rst index 2005e9af..7ca55dfe 100644 --- a/docs/source/modules/hartree_fock.rst +++ b/docs/source/modules/hartree_fock.rst @@ -63,6 +63,79 @@ Providers --------- +.. c:var:: ao_two_e_integral_alpha + + .. code:: text + + double precision, allocatable :: ao_two_e_integral_alpha (ao_num,ao_num) + double precision, allocatable :: ao_two_e_integral_beta (ao_num,ao_num) + + File: :file:`fock_matrix_hf.irp.f` + + Alpha Fock matrix in AO basis set + + + + +.. c:var:: ao_two_e_integral_beta + + .. code:: text + + double precision, allocatable :: ao_two_e_integral_alpha (ao_num,ao_num) + double precision, allocatable :: ao_two_e_integral_beta (ao_num,ao_num) + + File: :file:`fock_matrix_hf.irp.f` + + Alpha Fock matrix in AO basis set + + + + +.. c:var:: extra_e_contrib_density + + .. code:: text + + double precision :: extra_e_contrib_density + + File: :file:`hf_energy.irp.f` + + Extra contribution to the SCF energy coming from the density. + + For a Hartree-Fock calculation: extra_e_contrib_density = 0 + + For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - trace of the V_xc potential + + + + +.. c:var:: fock_matrix_ao_alpha + + .. code:: text + + double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num) + double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num) + + File: :file:`fock_matrix_hf.irp.f` + + Alpha Fock matrix in AO basis set + + + + +.. c:var:: fock_matrix_ao_beta + + .. code:: text + + double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num) + double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num) + + File: :file:`fock_matrix_hf.irp.f` + + Alpha Fock matrix in AO basis set + + + + .. c:var:: hf_energy .. code:: text @@ -113,6 +186,34 @@ Subroutines / functions +.. c:function:: create_guess + + .. code:: text + + subroutine create_guess + + File: :file:`scf.irp.f` + + Create a MO guess if no MOs are present in the EZFIO directory + + + + + +.. c:function:: run + + .. code:: text + + subroutine run + + File: :file:`scf.irp.f` + + Run SCF calculation + + + + + .. c:function:: scf .. code:: text diff --git a/docs/source/modules/iterations.rst b/docs/source/modules/iterations.rst index 81b89008..ed35c921 100644 --- a/docs/source/modules/iterations.rst +++ b/docs/source/modules/iterations.rst @@ -91,7 +91,7 @@ Subroutines / functions .. code:: text - subroutine print_summary(e_,pt2_,error_,variance_,norm_,n_det_,n_occ_pattern_) + subroutine print_summary(e_,pt2_,error_,variance_,norm_,n_det_,n_occ_pattern_,n_st) File: :file:`print_summary.irp.f` diff --git a/docs/source/modules/kohn_sham.rst b/docs/source/modules/kohn_sham.rst index 1dac5f0f..4710a3d8 100644 --- a/docs/source/modules/kohn_sham.rst +++ b/docs/source/modules/kohn_sham.rst @@ -52,178 +52,6 @@ Providers --------- -.. c:var:: ao_potential_alpha_xc - - .. code:: text - - double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num) - double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num) - - File: :file:`pot_functionals.irp.f` - - - - - - -.. c:var:: ao_potential_beta_xc - - .. code:: text - - double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num) - double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num) - - File: :file:`pot_functionals.irp.f` - - - - - - -.. c:var:: ao_two_e_integral_alpha - - .. code:: text - - double precision, allocatable :: ao_two_e_integral_alpha (ao_num,ao_num) - double precision, allocatable :: ao_two_e_integral_beta (ao_num,ao_num) - - File: :file:`fock_matrix_ks.irp.f` - - Alpha Fock matrix in ao basis set - - - - -.. c:var:: ao_two_e_integral_beta - - .. code:: text - - double precision, allocatable :: ao_two_e_integral_alpha (ao_num,ao_num) - double precision, allocatable :: ao_two_e_integral_beta (ao_num,ao_num) - - File: :file:`fock_matrix_ks.irp.f` - - Alpha Fock matrix in ao basis set - - - - -.. c:var:: e_correlation_dft - - .. code:: text - - double precision :: e_correlation_dft - - File: :file:`pot_functionals.irp.f` - - - - - - -.. c:var:: e_exchange_dft - - .. code:: text - - double precision :: e_exchange_dft - - File: :file:`pot_functionals.irp.f` - - - - - - -.. c:var:: extra_e_contrib_density - - .. code:: text - - double precision :: extra_e_contrib_density - - File: :file:`ks_enery.irp.f` - - Extra contribution to the SCF energy coming from the density. - - For a Hartree-Fock calculation: extra_e_contrib_density = 0 - - For a Kohn-Sham or Range-separated Kohn-Sham: the exchange/correlation - 1/2 trace of the V_xc potential - - - - -.. c:var:: fock_matrix_alpha_no_xc_ao - - .. code:: text - - double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num) - double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num) - - File: :file:`fock_matrix_ks.irp.f` - - Mono electronic an Coulomb matrix in ao basis set - - - - -.. c:var:: fock_matrix_ao_alpha - - .. code:: text - - double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num) - double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num) - - File: :file:`fock_matrix_ks.irp.f` - - Alpha Fock matrix in ao basis set - - - - -.. c:var:: fock_matrix_ao_beta - - .. code:: text - - double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num) - double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num) - - File: :file:`fock_matrix_ks.irp.f` - - Alpha Fock matrix in ao basis set - - - - -.. c:var:: fock_matrix_beta_no_xc_ao - - .. code:: text - - double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num) - double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num) - - File: :file:`fock_matrix_ks.irp.f` - - Mono electronic an Coulomb matrix in ao basis set - - - - -.. c:var:: fock_matrix_energy - - .. code:: text - - double precision :: ks_energy - double precision :: two_electron_energy - double precision :: one_electron_energy - double precision :: fock_matrix_energy - double precision :: trace_potential_xc - - File: :file:`ks_enery.irp.f` - - Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. - - - - .. c:var:: ks_energy .. code:: text @@ -241,104 +69,11 @@ Providers -.. c:var:: one_electron_energy - - .. code:: text - - double precision :: ks_energy - double precision :: two_electron_energy - double precision :: one_electron_energy - double precision :: fock_matrix_energy - double precision :: trace_potential_xc - - File: :file:`ks_enery.irp.f` - - Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. - - - - -.. c:var:: trace_potential_xc - - .. code:: text - - double precision :: ks_energy - double precision :: two_electron_energy - double precision :: one_electron_energy - double precision :: fock_matrix_energy - double precision :: trace_potential_xc - - File: :file:`ks_enery.irp.f` - - Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. - - - - -.. c:var:: two_electron_energy - - .. code:: text - - double precision :: ks_energy - double precision :: two_electron_energy - double precision :: one_electron_energy - double precision :: fock_matrix_energy - double precision :: trace_potential_xc - - File: :file:`ks_enery.irp.f` - - Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. - - - - Subroutines / functions ----------------------- -.. c:function:: check_coherence_functional - - .. code:: text - - subroutine check_coherence_functional - - File: :file:`ks_scf.irp.f` - - - - - - - -.. c:function:: create_guess - - .. code:: text - - subroutine create_guess - - File: :file:`ks_scf.irp.f` - - Create a MO guess if no MOs are present in the EZFIO directory - - - - - -.. c:function:: run - - .. code:: text - - subroutine run - - File: :file:`ks_scf.irp.f` - - Run SCF calculation - - - - - .. c:function:: srs_ks_cf .. code:: text diff --git a/docs/source/modules/kohn_sham_rs.rst b/docs/source/modules/kohn_sham_rs.rst index 9ab0aa5e..ca51ab5b 100644 --- a/docs/source/modules/kohn_sham_rs.rst +++ b/docs/source/modules/kohn_sham_rs.rst @@ -60,6 +60,122 @@ Providers --------- +.. c:var:: ao_potential_alpha_xc + + .. code:: text + + double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num) + double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num) + + File: :file:`pot_functionals.irp.f` + + + + + + +.. c:var:: ao_potential_beta_xc + + .. code:: text + + double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num) + double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num) + + File: :file:`pot_functionals.irp.f` + + + + + + +.. c:var:: e_correlation_dft + + .. code:: text + + double precision :: e_correlation_dft + + File: :file:`pot_functionals.irp.f` + + + + + + +.. c:var:: e_exchange_dft + + .. code:: text + + double precision :: e_exchange_dft + + File: :file:`pot_functionals.irp.f` + + + + + + +.. c:var:: fock_matrix_alpha_no_xc_ao + + .. code:: text + + double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num) + double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num) + + File: :file:`fock_matrix_rs_ks.irp.f` + + Mono electronic an Coulomb matrix in AO basis set + + + + +.. c:var:: fock_matrix_beta_no_xc_ao + + .. code:: text + + double precision, allocatable :: fock_matrix_alpha_no_xc_ao (ao_num,ao_num) + double precision, allocatable :: fock_matrix_beta_no_xc_ao (ao_num,ao_num) + + File: :file:`fock_matrix_rs_ks.irp.f` + + Mono electronic an Coulomb matrix in AO basis set + + + + +.. c:var:: fock_matrix_energy + + .. code:: text + + double precision :: rs_ks_energy + double precision :: two_electron_energy + double precision :: one_electron_energy + double precision :: fock_matrix_energy + double precision :: trace_potential_xc + + File: :file:`rs_ks_energy.irp.f` + + Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. + + + + +.. c:var:: one_electron_energy + + .. code:: text + + double precision :: rs_ks_energy + double precision :: two_electron_energy + double precision :: one_electron_energy + double precision :: fock_matrix_energy + double precision :: trace_potential_xc + + File: :file:`rs_ks_energy.irp.f` + + Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. + + + + .. c:var:: rs_ks_energy .. code:: text @@ -77,11 +193,59 @@ Providers +.. c:var:: trace_potential_xc + + .. code:: text + + double precision :: rs_ks_energy + double precision :: two_electron_energy + double precision :: one_electron_energy + double precision :: fock_matrix_energy + double precision :: trace_potential_xc + + File: :file:`rs_ks_energy.irp.f` + + Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. + + + + +.. c:var:: two_electron_energy + + .. code:: text + + double precision :: rs_ks_energy + double precision :: two_electron_energy + double precision :: one_electron_energy + double precision :: fock_matrix_energy + double precision :: trace_potential_xc + + File: :file:`rs_ks_energy.irp.f` + + Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity. + + + + Subroutines / functions ----------------------- +.. c:function:: check_coherence_functional + + .. code:: text + + subroutine check_coherence_functional + + File: :file:`rs_ks_scf.irp.f` + + + + + + + .. c:function:: rs_ks_scf .. code:: text diff --git a/docs/source/modules/mo_basis.rst b/docs/source/modules/mo_basis.rst index bf647f5c..044702fe 100644 --- a/docs/source/modules/mo_basis.rst +++ b/docs/source/modules/mo_basis.rst @@ -329,15 +329,15 @@ Subroutines / functions -.. c:function:: reorder_active_orb +.. c:function:: reorder_core_orb .. code:: text - subroutine reorder_active_orb + subroutine reorder_core_orb File: :file:`track_orb.irp.f` - routines that takes the current :c:data:`mo_coef` and reorder the active orbitals (see :c:data:`list_act` and :c:data:`n_act_orb`) according to the overlap with :c:data:`mo_coef_begin_iteration` + 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` diff --git a/docs/source/modules/scf_utils.rst b/docs/source/modules/scf_utils.rst index d9ec8f4f..8866bd75 100644 --- a/docs/source/modules/scf_utils.rst +++ b/docs/source/modules/scf_utils.rst @@ -97,9 +97,9 @@ EZFIO parameters Calculated HF energy -.. option:: no_oa_or_av_opt +.. option:: frozen_orb_scf - If true, leave the active orbitals untouched in the SCF procedure + If true, leave untouched all the orbitals defined as core and optimize all the orbitals defined as active with qp_set_mo_class Default: False diff --git a/docs/source/programmers_guide/index_providers.rst b/docs/source/programmers_guide/index_providers.rst index 01b305aa..5cdd700d 100644 --- a/docs/source/programmers_guide/index_providers.rst +++ b/docs/source/programmers_guide/index_providers.rst @@ -231,6 +231,7 @@ Index of Providers * :c:data:`fock_wee_closed_shell` * :c:data:`fps_spf_matrix_ao` * :c:data:`fps_spf_matrix_mo` +* :c:data:`frozen_orb_scf` * :c:data:`full_ijkl_bitmask` * :c:data:`full_ijkl_bitmask_4` * :c:data:`gauleg_t2` @@ -433,11 +434,11 @@ Index of Providers * :c:data:`n_virt_orb` * :c:data:`n_virt_orb_allocate` * :c:data:`no_ivvv_integrals` -* :c:data:`no_oa_or_av_opt` * :c:data:`no_vvv_integrals` * :c:data:`no_vvvv_integrals` * :c:data:`nproc` * :c:data:`nthreads_davidson` +* :c:data:`nthreads_pt2` * :c:data:`nucl_aos` * :c:data:`nucl_aos_transposed` * :c:data:`nucl_charge` @@ -1213,8 +1214,9 @@ Index of Subroutines/Functions * :c:func:`read_dets` * :c:func:`recentered_poly2` * :c:func:`remove_duplicates_in_psi_det` +* :c:func:`remove_duplicates_in_selection_buffer` * :c:func:`remove_small_contributions` -* :c:func:`reorder_active_orb` +* :c:func:`reorder_core_orb` * :c:func:`repeat_all_e_corr` * :c:func:`reset_zmq_addresses` * :c:func:`resident_memory` diff --git a/docs/source/users_guide/qp_plugins.rst b/docs/source/users_guide/qp_plugins.rst index 3d85421a..1eadb4fb 100644 --- a/docs/source/users_guide/qp_plugins.rst +++ b/docs/source/users_guide/qp_plugins.rst @@ -6,7 +6,7 @@ qp_plugins .. program:: qp_plugins -This command deals with all external plugings of |qp|. Plugin repositories can +This command deals with all external plugins of |qp|. Plugin repositories can be downloaded, and the plugins in these repositories can be installed/uninstalled of created. @@ -62,3 +62,41 @@ Usage Specify in which repository the new plugin will be created. + +Example +------- + +Let us download, install and compile some specific external plugins from ``_ . + + +First, download the git repo associated to these plugins. To do so, first go to the `plugins` directory in the |QP| and execute: + +.. code:: bash + + qp_plugins download https://gitlab.com/eginer/qp_plugins_eginer + + +This will create in the directory `plugins` a local copy of the git repo located at the URL you indicated. +Then, go in `qp_plugins_eginer/stable/` + +.. code:: bash + + cd qp_plugins_eginer/stable/ + + +In the directory `stable`, 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 |QP|. + + +Now let us install the plugin `rsdft_cipsi`: + +.. code:: bash + + qp_plugins install rsdft_cipsi + +This will link this directory to the |QP| which means that when the code will be compiled, this plugin will be compiled to and therefore +all the executables/scripts contained in this module will be available. + + +