10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 04:13:55 +01:00

added extra basis

This commit is contained in:
eginer 2024-12-04 15:58:59 +01:00
parent 91be8820e6
commit 0fdaa03d99
76 changed files with 18647 additions and 7638 deletions

View File

@ -41,6 +41,7 @@
programmers_guide/plugins
programmers_guide/plugins_tuto_intro
programmers_guide/plugins_tuto_I
programmers_guide/plugins_tuto_II
programmers_guide/new_ks
programmers_guide/index

View File

@ -27,7 +27,7 @@ The |AO| coefficients are normalized as:
.. warning::
`ao_coef` contains the |AO| coefficients given in input. These do not
include the normalization constant of the |AO|. The `ao_coef_normalized`
include the normalization constant of the |AO|. The `ao_coef_normalized_factor`
provider includes this normalization factor.
@ -36,6 +36,19 @@ the two electron integrals.
Complex Gaussian-Type Orbitals (cGTOs)
=====================================
Complex Gaussian-Type Orbitals (cGTOs) are also supported:
.. math::
\chi_i(\mathbf{r}) = x^a y^b z^c \sum_k c_{ki} \left( e^{-\alpha_{ki} \mathbf{r}^2 - \imath \mathbf{k}_{ki} \cdot \mathbf{r} - \imath \phi_{ki}} + \text{C.C.} \right)
where:
- :math:`\alpha \in \mathbb{C}` and :math:`\Re(\alpha) > 0` (specified by ``ao_expo`` and ``ao_expo_im``),
- :math:`\mathbf{k} = (k_x, k_y, k_z) \in \mathbb{R}^3` (specified by ``ao_expo_pw``),
- :math:`\phi = \phi_x + \phi_y + \phi_z \in \mathbb{R}` (specified by ``ao_expo_phase``).
@ -94,6 +107,39 @@ EZFIO parameters
Default: false
.. option:: ao_normalized
Use normalized basis functions
Default: true
.. option:: primitives_normalized
Use normalized primitive functions
Default: true
.. option:: use_cgtos
If true, use cgtos for AO integrals
Default: False
.. option:: ao_expo_im
imag part for Exponents for each primitive of each cGTOs |AO|
.. option:: ao_expo_pw
plane wave part for each primitive GTOs |AO|
.. option:: ao_expo_phase
phase shift for each primitive GTOs |AO|
Providers
---------
@ -130,35 +176,9 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_coef_normalization_libint_factor`
* :c:data:`ao_coef_normalized_ordered`
.. c:var:: ao_coef_normalization_libint_factor
File : :file:`ao_basis/aos.irp.f`
.. code:: fortran
double precision, allocatable :: ao_coef_normalization_libint_factor (ao_num)
|AO| normalization for interfacing with libint
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_coef_normalized`
* :c:data:`ao_expo`
* :c:data:`ao_l`
* :c:data:`ao_num`
* :c:data:`ao_prim_num`
.. c:var:: ao_coef_normalized
@ -191,7 +211,6 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_coef_normalization_libint_factor`
* :c:data:`ao_coef_normalized_ordered`
@ -260,13 +279,18 @@ Providers
* :c:data:`ao_dipole_x`
* :c:data:`ao_integrals_n_e`
* :c:data:`ao_integrals_n_e_per_atom`
* :c:data:`ao_integrals_pt_chrg`
* :c:data:`ao_overlap`
* :c:data:`ao_overlap_abs`
* :c:data:`ao_pseudo_integrals_local`
* :c:data:`ao_pseudo_integrals_non_local`
* :c:data:`ao_spread_x`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`ao_two_e_integral_erf_schwartz`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_erf_in_map`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`cholesky_ao_num`
.. c:var:: ao_coef_normalized_ordered_transp_per_nucl
@ -359,13 +383,18 @@ Providers
* :c:data:`ao_expo_ordered_transp_per_nucl`
* :c:data:`ao_integrals_n_e`
* :c:data:`ao_integrals_n_e_per_atom`
* :c:data:`ao_integrals_pt_chrg`
* :c:data:`ao_overlap`
* :c:data:`ao_overlap_abs`
* :c:data:`ao_pseudo_integrals_local`
* :c:data:`ao_pseudo_integrals_non_local`
* :c:data:`ao_spread_x`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`ao_two_e_integral_erf_schwartz`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_erf_in_map`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`cholesky_ao_num`
.. c:var:: ao_expo_ordered_transp_per_nucl
@ -393,6 +422,28 @@ Providers
.. c:var:: ao_first_of_shell
File : :file:`ao_basis/aos.irp.f`
.. code:: fortran
integer, allocatable :: ao_first_of_shell (shell_num)
Index of the shell to which the AO corresponds
Needs:
.. hlist::
:columns: 3
* :c:data:`shell_ang_mom`
* :c:data:`shell_num`
.. c:var:: ao_l
@ -422,7 +473,6 @@ Providers
:columns: 3
* :c:data:`ao_cart_to_sphe_coef`
* :c:data:`ao_coef_normalization_libint_factor`
* :c:data:`ao_l_char_space`
* :c:data:`nucl_list_shell_aos`
@ -456,7 +506,6 @@ Providers
:columns: 3
* :c:data:`ao_cart_to_sphe_coef`
* :c:data:`ao_coef_normalization_libint_factor`
* :c:data:`ao_l_char_space`
* :c:data:`nucl_list_shell_aos`
@ -513,7 +562,6 @@ Providers
:columns: 3
* :c:data:`ao_cart_to_sphe_coef`
* :c:data:`ao_coef_normalization_libint_factor`
* :c:data:`ao_l_char_space`
* :c:data:`nucl_list_shell_aos`
@ -566,13 +614,43 @@ Providers
:columns: 3
* :c:data:`ao_coef`
* :c:data:`ao_coef_cgtos_norm_ord_transp`
* :c:data:`ao_coef_norm_cgtos`
* :c:data:`ao_coef_norm_cgtos_ord`
* :c:data:`ao_coef_normalized`
* :c:data:`ao_coef_normalized_ordered`
* :c:data:`ao_coef_normalized_ordered_transp`
* :c:data:`ao_coef_normalized_ordered_transp_per_nucl`
* :c:data:`ao_expo`
* :c:data:`ao_expo_cgtos_ord_transp`
* :c:data:`ao_expo_im`
* :c:data:`ao_expo_ordered_transp`
* :c:data:`ao_expo_ordered_transp_per_nucl`
* :c:data:`ao_expo_phase`
* :c:data:`ao_expo_pw`
.. c:var:: ao_shell
File : :file:`ao_basis/aos.irp.f`
.. code:: fortran
integer, allocatable :: ao_shell (ao_num)
Index of the shell to which the AO corresponds
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`shell_ang_mom`
* :c:data:`shell_num`
.. c:var:: cart_to_sphe_0
@ -849,10 +927,17 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_2e_cgtos_schwartz`
* :c:data:`ao_integrals_n_e`
* :c:data:`ao_integrals_n_e_cgtos`
* :c:data:`ao_integrals_n_e_per_atom`
* :c:data:`ao_integrals_pt_chrg`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`ao_two_e_integral_erf_schwartz`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_erf_in_map`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`cholesky_ao_num`
* :c:data:`gauleg_t2`
@ -881,10 +966,17 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_2e_cgtos_schwartz`
* :c:data:`ao_integrals_n_e`
* :c:data:`ao_integrals_n_e_cgtos`
* :c:data:`ao_integrals_n_e_per_atom`
* :c:data:`ao_integrals_pt_chrg`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`ao_two_e_integral_erf_schwartz`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_erf_in_map`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`cholesky_ao_num`
* :c:data:`gauleg_t2`
@ -915,7 +1007,6 @@ Providers
.. hlist::
:columns: 3
* :c:data:`nucl_aos_transposed`
* :c:data:`nucl_list_shell_aos`
@ -938,7 +1029,6 @@ Providers
* :c:data:`ao_nucl`
* :c:data:`ao_num`
* :c:data:`nucl_aos`
* :c:data:`nucl_n_aos`
* :c:data:`nucl_num`
@ -1043,6 +1133,74 @@ Providers
.. c:var:: use_cgtos
File : :file:`ao_basis/cgtos.irp.f`
.. code:: fortran
logical :: use_cgtos
If true, use cgtos for AO integrals
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mpi_master`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_deriv2_x`
* :c:data:`ao_integrals_n_e`
* :c:data:`ao_overlap`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`cholesky_ao_num`
.. c:var:: use_cosgtos
File : :file:`ao_basis/cosgtos.irp.f`
.. code:: fortran
logical :: use_cosgtos
If true, use cosgtos for AO integrals
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mpi_master`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_deriv2_x`
* :c:data:`ao_integrals_n_e`
* :c:data:`ao_overlap`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`cholesky_ao_num`
Subroutines / functions
-----------------------
@ -1069,7 +1227,7 @@ Subroutines / functions
.. code:: fortran
double precision function ao_value(i,r)
double precision function ao_value(i, r)
Returns the value of the i-th ao at point $\textbf{r}$
@ -1094,15 +1252,17 @@ Subroutines / functions
.. code:: fortran
subroutine give_all_aos_and_grad_and_lapl_at_r(r,aos_array,aos_grad_array,aos_lapl_array)
subroutine give_all_aos_and_grad_and_lapl_at_r(r, aos_array, aos_grad_array, aos_lapl_array)
input : r(1) ==> r(1) = x, r(2) = y, r(3) = z
output :
* aos_array(i) = ao(i) evaluated at $\textbf{r}$
* aos_grad_array(1,i) = $\nabla_x$ of the ao(i) evaluated at $\textbf{r}$
Needs:
@ -1134,9 +1294,10 @@ Subroutines / functions
.. code:: fortran
subroutine give_all_aos_and_grad_at_r(r,aos_array,aos_grad_array)
subroutine give_all_aos_and_grad_at_r(r, aos_array, aos_grad_array)
input : r(1) ==> r(1) = x, r(2) = y, r(3) = z
output :
@ -1175,12 +1336,14 @@ Subroutines / functions
.. code:: fortran
subroutine give_all_aos_at_r(r,aos_array)
subroutine give_all_aos_at_r(r, tmp_array)
input : r == r(1) = x and so on
output : aos_array(i) = aos(i) evaluated in $\textbf{r}$
output : tmp_array(i) = aos(i) evaluated in $\textbf{r}$
Needs:
@ -1212,7 +1375,7 @@ Subroutines / functions
.. code:: fortran
double precision function primitive_value(i,j,r)
double precision function primitive_value(i, j, r)
Returns the value of the j-th primitive of the i-th |AO| at point $\textbf{r}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -366,6 +366,7 @@ Providers
* :c:data:`aos_vxc_alpha_lda_w`
* :c:data:`aos_vxc_alpha_pbe_w`
* :c:data:`aos_vxc_alpha_sr_pbe_w`
* :c:data:`average_on_top`
* :c:data:`elec_beta_num_grid_becke`
* :c:data:`energy_c_lda`
* :c:data:`energy_c_sr_lda`
@ -424,6 +425,7 @@ Providers
.. hlist::
:columns: 3
* :c:data:`aos_grad_in_r_array_extra`
* :c:data:`aos_in_r_array_extra`
@ -607,6 +609,7 @@ Providers
* :c:data:`aos_vxc_alpha_lda_w`
* :c:data:`aos_vxc_alpha_pbe_w`
* :c:data:`aos_vxc_alpha_sr_pbe_w`
* :c:data:`average_on_top`
* :c:data:`elec_beta_num_grid_becke`
* :c:data:`energy_c_lda`
* :c:data:`energy_c_sr_lda`
@ -665,6 +668,7 @@ Providers
.. hlist::
:columns: 3
* :c:data:`aos_grad_in_r_array_extra`
* :c:data:`aos_in_r_array_extra`
@ -914,6 +918,7 @@ Providers
* :c:data:`aos_vxc_alpha_lda_w`
* :c:data:`aos_vxc_alpha_pbe_w`
* :c:data:`aos_vxc_alpha_sr_pbe_w`
* :c:data:`average_on_top`
* :c:data:`elec_beta_num_grid_becke`
* :c:data:`energy_c_lda`
* :c:data:`energy_c_sr_lda`
@ -972,6 +977,7 @@ Providers
.. hlist::
:columns: 3
* :c:data:`aos_grad_in_r_array_extra`
* :c:data:`aos_in_r_array_extra`
@ -1013,6 +1019,7 @@ Providers
.. hlist::
:columns: 3
* :c:data:`aos_grad_in_r_array_extra`
* :c:data:`aos_in_r_array_extra`
@ -1126,6 +1133,7 @@ Providers
* :c:data:`aos_vxc_alpha_lda_w`
* :c:data:`aos_vxc_alpha_pbe_w`
* :c:data:`aos_vxc_alpha_sr_pbe_w`
* :c:data:`average_on_top`
* :c:data:`elec_beta_num_grid_becke`
* :c:data:`energy_c_lda`
* :c:data:`energy_c_sr_lda`
@ -1196,6 +1204,7 @@ Providers
.. hlist::
:columns: 3
* :c:data:`aos_grad_in_r_array_extra`
* :c:data:`aos_in_r_array_extra`
* :c:data:`aos_in_r_array_extra_transp`
* :c:data:`final_grid_points_extra`
@ -1356,6 +1365,7 @@ Providers
* :c:data:`aos_vxc_alpha_lda_w`
* :c:data:`aos_vxc_alpha_pbe_w`
* :c:data:`aos_vxc_alpha_sr_pbe_w`
* :c:data:`average_on_top`
* :c:data:`basis_mos_in_r_array`
* :c:data:`core_density`
* :c:data:`core_inact_act_mos_grad_in_r_array`
@ -1371,6 +1381,9 @@ Providers
* :c:data:`energy_x_pbe`
* :c:data:`energy_x_sr_lda`
* :c:data:`energy_x_sr_pbe`
* :c:data:`f_hf_cholesky`
* :c:data:`f_hf_cholesky_sparse`
* :c:data:`f_hf_cholesky_sparse_bis`
* :c:data:`f_psi_cas_ab`
* :c:data:`f_psi_cas_ab_old`
* :c:data:`f_psi_hf_ab`
@ -1393,14 +1406,19 @@ Providers
* :c:data:`mos_in_r_array_transp`
* :c:data:`mos_lapl_in_r_array`
* :c:data:`mos_lapl_in_r_array_tranp`
* :c:data:`mos_times_cholesky_r1`
* :c:data:`mos_times_cholesky_r2`
* :c:data:`mu_average_prov`
* :c:data:`mu_grad_rho`
* :c:data:`mu_of_r_dft`
* :c:data:`mu_of_r_dft_average`
* :c:data:`mu_of_r_hf`
* :c:data:`mu_of_r_hf_old`
* :c:data:`mu_of_r_hf_sparse`
* :c:data:`mu_of_r_prov`
* :c:data:`mu_of_r_psi_cas`
* :c:data:`mu_rsc_of_r`
* :c:data:`on_top_hf_grid`
* :c:data:`one_e_act_density_alpha`
* :c:data:`one_e_act_density_beta`
* :c:data:`one_e_cas_total_density`

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -119,15 +119,15 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`psi_configuration`
* :c:data:`n_det`
* :c:data:`psi_occ_pattern`
* :c:data:`c0_weight`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_configuration`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_occ_pattern`
.. c:function:: h_apply_cis_diexc:
@ -328,15 +328,15 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`psi_configuration`
* :c:data:`n_det`
* :c:data:`psi_occ_pattern`
* :c:data:`c0_weight`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_configuration`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_occ_pattern`
.. c:function:: h_apply_cis_sym_diexc:

View File

@ -53,15 +53,145 @@ EZFIO parameters
Variational |CISD| energy
.. option:: lcc_energy
lccsd energy
Programs
--------
* :ref:`cisd`
* :ref:`lccsd`
Providers
---------
.. c:var:: lccsd_coef
File : :file:`lccsd_prov.irp.f`
.. code:: fortran
double precision, allocatable :: lccsd_coef (N_det,N_states)
double precision, allocatable :: lccsd_energies (N_states)
Needs:
.. hlist::
:columns: 3
* :c:data:`big_array_coulomb_integrals`
* :c:data:`big_array_coulomb_integrals`
* :c:data:`davidson_sze_max`
* :c:data:`disk_based_davidson`
* :c:data:`mo_integrals_map`
* :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:`nproc`
* :c:data:`nthreads_davidson`
* :c:data:`psi_det`
* :c:data:`qp_max_mem`
* :c:data:`ref_bitmask`
* :c:data:`state_following`
* :c:data:`threshold_davidson`
.. c:var:: lccsd_energies
File : :file:`lccsd_prov.irp.f`
.. code:: fortran
double precision, allocatable :: lccsd_coef (N_det,N_states)
double precision, allocatable :: lccsd_energies (N_states)
Needs:
.. hlist::
:columns: 3
* :c:data:`big_array_coulomb_integrals`
* :c:data:`big_array_coulomb_integrals`
* :c:data:`davidson_sze_max`
* :c:data:`disk_based_davidson`
* :c:data:`mo_integrals_map`
* :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:`nproc`
* :c:data:`nthreads_davidson`
* :c:data:`psi_det`
* :c:data:`qp_max_mem`
* :c:data:`ref_bitmask`
* :c:data:`state_following`
* :c:data:`threshold_davidson`
Subroutines / functions
-----------------------
.. c:function:: get_lccsd_2:
File : :file:`lccsd.irp.f`
.. code:: fortran
subroutine get_lccsd_2
Needs:
.. hlist::
:columns: 3
* :c:data:`ha_to_ev`
* :c:data:`lccsd_coef`
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`save_threshold`
Called by:
.. hlist::
:columns: 3
* :c:func:`run`
Calls:
.. hlist::
:columns: 3
* :c:func:`ezfio_set_cisd_lcc_energy`
* :c:func:`save_wavefunction_truncated`
Touches:
.. hlist::
:columns: 3
* :c:data:`psi_coef`
.. c:function:: h_apply_cisd:
@ -99,6 +229,7 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:func:`run`
* :c:func:`run_cisd`
Calls:
@ -119,15 +250,15 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`psi_configuration`
* :c:data:`n_det`
* :c:data:`psi_occ_pattern`
* :c:data:`c0_weight`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_configuration`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_occ_pattern`
.. c:function:: h_apply_cisd_diexc:
@ -315,6 +446,7 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:func:`run`
* :c:func:`run_cisd`
Calls:
@ -335,15 +467,15 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`psi_configuration`
* :c:data:`n_det`
* :c:data:`psi_occ_pattern`
* :c:data:`c0_weight`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_configuration`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_occ_pattern`
.. c:function:: h_apply_cisd_sym_diexc:
@ -534,13 +666,13 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`psi_configuration`
* :c:data:`n_det`
* :c:data:`psi_occ_pattern`
* :c:data:`c0_weight`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_configuration`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_occ_pattern`

File diff suppressed because it is too large Load Diff

View File

@ -25,6 +25,7 @@ Providers
double precision, allocatable :: dressing_column_h (N_det,N_states)
double precision, allocatable :: dressing_column_s (N_det,N_states)
double precision, allocatable :: dressing_delta (N_det,N_states)
Null dressing vectors
@ -54,6 +55,37 @@ Providers
double precision, allocatable :: dressing_column_h (N_det,N_states)
double precision, allocatable :: dressing_column_s (N_det,N_states)
double precision, allocatable :: dressing_delta (N_det,N_states)
Null dressing vectors
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_states`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ci_electronic_energy`
.. c:var:: dressing_delta
File : :file:`davidson_undressed/null_dressing_vector.irp.f`
.. code:: fortran
double precision, allocatable :: dressing_column_h (N_det,N_states)
double precision, allocatable :: dressing_column_s (N_det,N_states)
double precision, allocatable :: dressing_delta (N_det,N_states)
Null dressing vectors

View File

@ -40,13 +40,13 @@ EZFIO parameters
.. option:: no_core_density
if [no_core_dm] then all elements of the density matrix involving at least one orbital set as core are set to zero
If [no_core_density] then all elements of the density matrix involving at least one orbital set as core are set to zero. The default is False in order to take all the density.
Default: full_density
Default: False
.. option:: normalize_dm
if .True., then you normalize the no_core_dm to elec_alpha_num - n_core_orb and elec_beta_num - n_core_orb
Type of density. If .True., then you normalize the no_core_dm to elec_alpha_num - n_core_orb and elec_beta_num - n_core_orb
Default: True

File diff suppressed because it is too large Load Diff

View File

@ -47,13 +47,13 @@ EZFIO parameters
name of the exchange functional
Default: short_range_LDA
Default: sr_pbe
.. option:: correlation_functional
name of the correlation functional
Default: short_range_LDA
Default: sr_pbe
.. option:: HF_exchange
@ -61,6 +61,12 @@ EZFIO parameters
Default: 0.
.. option:: mu_dft_type
type of mu(r) for rsdft [ cst ]
Default: cst
Providers
---------

View File

@ -39,6 +39,272 @@ In the core modules of the |QP|, two functionals are implemented:
Providers
---------
.. c:var:: ao_effective_one_e_potential
File : :file:`dft_one_e/effective_pot.irp.f`
.. code:: fortran
double precision, allocatable :: ao_effective_one_e_potential (ao_num,ao_num,N_states)
double precision, allocatable :: ao_effective_one_e_potential_without_kin (ao_num,ao_num,N_states)
Effective_one_e_potential(i,j) = :math:`\rangle i_{AO}| v_{H}^{sr} |j_{AO}\rangle + \rangle i_{AO}| h_{core} |j_{AO}\rangle + \rangle i_{AO}|v_{xc} |j_{AO}\rangle`
on the |MO| basis
Taking the expectation value does not provide any energy, but
ao_effective_one_e_potential(i,j) is the potential coupling DFT and WFT parts
and it is used in any RS-DFT based calculations
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`effective_one_e_potential`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`s_mo_coef`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_effective_one_e_potential_sa`
.. c:var:: ao_effective_one_e_potential_sa
File : :file:`dft_one_e/effective_pot.irp.f`
.. code:: fortran
double precision, allocatable :: ao_effective_one_e_potential_sa (ao_num,ao_num)
double precision, allocatable :: ao_effective_one_e_potential_without_kin_sa (ao_num,ao_num)
State-averaged potential in AO basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_effective_one_e_potential`
* :c:data:`ao_num`
* :c:data:`n_states`
* :c:data:`state_average_weight`
.. c:var:: ao_effective_one_e_potential_without_kin
File : :file:`dft_one_e/effective_pot.irp.f`
.. code:: fortran
double precision, allocatable :: ao_effective_one_e_potential (ao_num,ao_num,N_states)
double precision, allocatable :: ao_effective_one_e_potential_without_kin (ao_num,ao_num,N_states)
Effective_one_e_potential(i,j) = :math:`\rangle i_{AO}| v_{H}^{sr} |j_{AO}\rangle + \rangle i_{AO}| h_{core} |j_{AO}\rangle + \rangle i_{AO}|v_{xc} |j_{AO}\rangle`
on the |MO| basis
Taking the expectation value does not provide any energy, but
ao_effective_one_e_potential(i,j) is the potential coupling DFT and WFT parts
and it is used in any RS-DFT based calculations
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`effective_one_e_potential`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`s_mo_coef`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_effective_one_e_potential_sa`
.. c:var:: ao_effective_one_e_potential_without_kin_sa
File : :file:`dft_one_e/effective_pot.irp.f`
.. code:: fortran
double precision, allocatable :: ao_effective_one_e_potential_sa (ao_num,ao_num)
double precision, allocatable :: ao_effective_one_e_potential_without_kin_sa (ao_num,ao_num)
State-averaged potential in AO basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_effective_one_e_potential`
* :c:data:`ao_num`
* :c:data:`n_states`
* :c:data:`state_average_weight`
.. c:var:: effective_one_e_potential
File : :file:`dft_one_e/effective_pot.irp.f`
.. code:: fortran
double precision, allocatable :: effective_one_e_potential (mo_num,mo_num,N_states)
double precision, allocatable :: effective_one_e_potential_without_kin (mo_num,mo_num,N_states)
Effective_one_e_potential(i,j) = :math:`\rangle i_{MO}| v_{H}^{sr} |j_{MO}\rangle + \rangle i_{MO}| h_{core} |j_{MO}\rangle + \rangle i_{MO}|v_{xc} |j_{MO}\rangle`
on the |MO| basis
Taking the expectation value does not provide any energy, but
effective_one_e_potential(i,j) is the potential coupling DFT and WFT parts
and it is used in any RS-DFT based calculations
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_integrals_n_e`
* :c:data:`mo_kinetic_integrals`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`potential_c_alpha_mo`
* :c:data:`potential_x_alpha_mo`
* :c:data:`short_range_hartree_operator`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_effective_one_e_potential`
* :c:data:`effective_one_e_potential_sa`
.. c:var:: effective_one_e_potential_sa
File : :file:`dft_one_e/effective_pot.irp.f`
.. code:: fortran
double precision, allocatable :: effective_one_e_potential_sa (mo_num,mo_num)
double precision, allocatable :: effective_one_e_potential_without_kin_sa (mo_num,mo_num)
State-averaged potential in MO basis
Needs:
.. hlist::
:columns: 3
* :c:data:`effective_one_e_potential`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`state_average_weight`
.. c:var:: effective_one_e_potential_without_kin
File : :file:`dft_one_e/effective_pot.irp.f`
.. code:: fortran
double precision, allocatable :: effective_one_e_potential (mo_num,mo_num,N_states)
double precision, allocatable :: effective_one_e_potential_without_kin (mo_num,mo_num,N_states)
Effective_one_e_potential(i,j) = :math:`\rangle i_{MO}| v_{H}^{sr} |j_{MO}\rangle + \rangle i_{MO}| h_{core} |j_{MO}\rangle + \rangle i_{MO}|v_{xc} |j_{MO}\rangle`
on the |MO| basis
Taking the expectation value does not provide any energy, but
effective_one_e_potential(i,j) is the potential coupling DFT and WFT parts
and it is used in any RS-DFT based calculations
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_integrals_n_e`
* :c:data:`mo_kinetic_integrals`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`potential_c_alpha_mo`
* :c:data:`potential_x_alpha_mo`
* :c:data:`short_range_hartree_operator`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_effective_one_e_potential`
* :c:data:`effective_one_e_potential_sa`
.. c:var:: effective_one_e_potential_without_kin_sa
File : :file:`dft_one_e/effective_pot.irp.f`
.. code:: fortran
double precision, allocatable :: effective_one_e_potential_sa (mo_num,mo_num)
double precision, allocatable :: effective_one_e_potential_without_kin_sa (mo_num,mo_num)
State-averaged potential in MO basis
Needs:
.. hlist::
:columns: 3
* :c:data:`effective_one_e_potential`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`state_average_weight`
.. c:var:: energy_c
@ -59,8 +325,8 @@ Providers
* :c:data:`correlation_functional`
* :c:data:`energy_c_lda`
* :c:data:`energy_c_none`
* :c:data:`energy_c_pbe`
* :c:data:`energy_c_sr_lda`
* :c:data:`energy_x_pbe`
* :c:data:`energy_x_sr_pbe`
* :c:data:`n_states`
@ -95,6 +361,7 @@ Providers
* :c:data:`energy_x_sr_lda`
* :c:data:`energy_x_sr_pbe`
* :c:data:`exchange_functional`
* :c:data:`hf_exchange`
* :c:data:`n_states`
Needed by:
@ -105,6 +372,158 @@ Providers
* :c:data:`e_exchange_dft`
.. c:var:: mu_erf_dft
File : :file:`dft_one_e/mu_erf_dft.irp.f`
.. code:: fortran
double precision :: mu_erf_dft
range separation parameter used in RS-DFT.
It is set to mu_erf in order to be consistent with the module "hamiltonian"
Needs:
.. hlist::
:columns: 3
* :c:data:`mu_erf`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mu_of_r_dft`
.. c:var:: mu_grad_rho
File : :file:`dft_one_e/mu_erf_dft.irp.f`
.. code:: fortran
double precision, allocatable :: mu_grad_rho (n_points_final_grid)
Needs:
.. hlist::
:columns: 3
* :c:data:`final_grid_points`
* :c:data:`mu_erf`
* :c:data:`n_points_final_grid`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mu_of_r_dft`
.. c:var:: mu_of_r_dft
File : :file:`dft_one_e/mu_erf_dft.irp.f`
.. code:: fortran
double precision, allocatable :: mu_of_r_dft (n_points_final_grid)
Needs:
.. hlist::
:columns: 3
* :c:data:`mu_dft_type`
* :c:data:`mu_erf_dft`
* :c:data:`mu_grad_rho`
* :c:data:`mu_of_r_hf`
* :c:data:`mu_rsc_of_r`
* :c:data:`n_points_final_grid`
Needed by:
.. hlist::
:columns: 3
* :c:data:`aos_sr_vc_alpha_lda_w`
* :c:data:`aos_sr_vxc_alpha_lda_w`
* :c:data:`aos_vc_alpha_sr_pbe_w`
* :c:data:`aos_vxc_alpha_sr_pbe_w`
* :c:data:`energy_c_sr_lda`
* :c:data:`energy_x_sr_lda`
* :c:data:`energy_x_sr_pbe`
* :c:data:`mu_of_r_dft_average`
.. c:var:: mu_of_r_dft_average
File : :file:`dft_one_e/mu_erf_dft.irp.f`
.. code:: fortran
double precision :: mu_of_r_dft_average
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`final_grid_points`
* :c:data:`mu_of_r_dft`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
* :c:data:`one_e_dm_alpha_ao_for_dft`
.. c:var:: mu_rsc_of_r
File : :file:`dft_one_e/mu_erf_dft.irp.f`
.. code:: fortran
double precision, allocatable :: mu_rsc_of_r (n_points_final_grid)
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`final_grid_points`
* :c:data:`n_points_final_grid`
* :c:data:`n_states`
* :c:data:`one_e_dm_alpha_ao_for_dft`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mu_of_r_dft`
.. c:var:: potential_c_alpha_ao
@ -265,6 +684,7 @@ Providers
* :c:data:`ao_num`
* :c:data:`exchange_functional`
* :c:data:`hf_exchange`
* :c:data:`n_states`
* :c:data:`potential_x_alpha_ao_lda`
* :c:data:`potential_x_alpha_ao_none`
@ -335,6 +755,7 @@ Providers
* :c:data:`ao_num`
* :c:data:`exchange_functional`
* :c:data:`hf_exchange`
* :c:data:`n_states`
* :c:data:`potential_x_alpha_ao_lda`
* :c:data:`potential_x_alpha_ao_none`
@ -521,6 +942,254 @@ Providers
* :c:data:`trace_v_xc_new`
.. c:var:: psi_dft_energy_h_core
File : :file:`dft_one_e/one_e_energy_dft.irp.f`
.. code:: fortran
double precision, allocatable :: psi_dft_energy_kinetic (N_states)
double precision, allocatable :: psi_dft_energy_nuclear_elec (N_states)
double precision, allocatable :: psi_dft_energy_h_core (N_states)
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_integrals_n_e`
* :c:data:`mo_kinetic_integrals`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
.. c:var:: psi_dft_energy_kinetic
File : :file:`dft_one_e/one_e_energy_dft.irp.f`
.. code:: fortran
double precision, allocatable :: psi_dft_energy_kinetic (N_states)
double precision, allocatable :: psi_dft_energy_nuclear_elec (N_states)
double precision, allocatable :: psi_dft_energy_h_core (N_states)
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_integrals_n_e`
* :c:data:`mo_kinetic_integrals`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
.. c:var:: psi_dft_energy_nuclear_elec
File : :file:`dft_one_e/one_e_energy_dft.irp.f`
.. code:: fortran
double precision, allocatable :: psi_dft_energy_kinetic (N_states)
double precision, allocatable :: psi_dft_energy_nuclear_elec (N_states)
double precision, allocatable :: psi_dft_energy_h_core (N_states)
kinetic, electron-nuclear and total h_core energy computed with the density matrix one_e_dm_mo_beta_for_dft+one_e_dm_mo_alpha_for_dft
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_integrals_n_e`
* :c:data:`mo_kinetic_integrals`
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
.. c:var:: regular_range_hartree
File : :file:`dft_one_e/sr_coulomb.irp.f`
.. code:: fortran
double precision, allocatable :: regular_range_hartree_operator (mo_num,mo_num,N_states)
double precision, allocatable :: regular_range_hartree (N_states)
regular_range_Hartree_operator(i,j) = :math:`\int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr}`
regular_range_Hartree = :math:`1/2 \sum_{i,j} \rho_{ij} \mathtt{regular_range_Hartree_operator}(i,j)`
= :math:`1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}`
Needs:
.. hlist::
:columns: 3
* :c:data:`cholesky_mo_num`
* :c:data:`cholesky_mo_transp`
* :c:data:`do_mo_cholesky`
* :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_states`
* :c:data:`one_e_dm_average_mo_for_dft`
* :c:data:`one_e_dm_mo_for_dft`
.. c:var:: regular_range_hartree_operator
File : :file:`dft_one_e/sr_coulomb.irp.f`
.. code:: fortran
double precision, allocatable :: regular_range_hartree_operator (mo_num,mo_num,N_states)
double precision, allocatable :: regular_range_hartree (N_states)
regular_range_Hartree_operator(i,j) = :math:`\int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr}`
regular_range_Hartree = :math:`1/2 \sum_{i,j} \rho_{ij} \mathtt{regular_range_Hartree_operator}(i,j)`
= :math:`1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}`
Needs:
.. hlist::
:columns: 3
* :c:data:`cholesky_mo_num`
* :c:data:`cholesky_mo_transp`
* :c:data:`do_mo_cholesky`
* :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_states`
* :c:data:`one_e_dm_average_mo_for_dft`
* :c:data:`one_e_dm_mo_for_dft`
.. c:var:: short_range_hartree
File : :file:`dft_one_e/sr_coulomb.irp.f`
.. code:: fortran
double precision, allocatable :: short_range_hartree_operator (mo_num,mo_num,N_states)
double precision, allocatable :: short_range_hartree (N_states)
short_range_Hartree_operator(i,j) = :math:`\int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr}`
short_range_Hartree = :math:`1/2 \sum_{i,j} \rho_{ij} \mathtt{short_range_Hartree_operator}(i,j)`
= :math:`1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}`
Needs:
.. hlist::
:columns: 3
* :c:data:`cholesky_mo_num`
* :c:data:`cholesky_mo_transp`
* :c:data:`do_mo_cholesky`
* :c:data:`mo_integrals_cache_min`
* :c:data:`mo_integrals_erf_map`
* :c:data:`mo_integrals_map`
* :c:data:`mo_num`
* :c:data:`mo_two_e_integrals_erf_in_map`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`n_states`
* :c:data:`one_e_dm_average_mo_for_dft`
* :c:data:`one_e_dm_mo_for_dft`
Needed by:
.. hlist::
:columns: 3
* :c:data:`effective_one_e_potential`
* :c:data:`trace_v_xc`
.. c:var:: short_range_hartree_operator
File : :file:`dft_one_e/sr_coulomb.irp.f`
.. code:: fortran
double precision, allocatable :: short_range_hartree_operator (mo_num,mo_num,N_states)
double precision, allocatable :: short_range_hartree (N_states)
short_range_Hartree_operator(i,j) = :math:`\int dr i(r)j(r) \int r' \rho(r') W_{ee}^{sr}`
short_range_Hartree = :math:`1/2 \sum_{i,j} \rho_{ij} \mathtt{short_range_Hartree_operator}(i,j)`
= :math:`1/2 \int dr \int r' \rho(r) \rho(r') W_{ee}^{sr}`
Needs:
.. hlist::
:columns: 3
* :c:data:`cholesky_mo_num`
* :c:data:`cholesky_mo_transp`
* :c:data:`do_mo_cholesky`
* :c:data:`mo_integrals_cache_min`
* :c:data:`mo_integrals_erf_map`
* :c:data:`mo_integrals_map`
* :c:data:`mo_num`
* :c:data:`mo_two_e_integrals_erf_in_map`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`n_states`
* :c:data:`one_e_dm_average_mo_for_dft`
* :c:data:`one_e_dm_mo_for_dft`
Needed by:
.. hlist::
:columns: 3
* :c:data:`effective_one_e_potential`
* :c:data:`trace_v_xc`
.. c:var:: trace_v_h

File diff suppressed because it is too large Load Diff

View File

@ -74,8 +74,13 @@ Providers
.. hlist::
:columns: 3
* :c:data:`cfg_seniority_index`
* :c:data:`cholesky_ao_num`
* :c:data:`diagonal_h_matrix_on_psi_det`
* :c:data:`nsomomax`
* :c:data:`ormas_max_e`
* :c:data:`psi_det_hii`
* :c:data:`psi_selectors_diag_h_mat`
.. c:var:: elec_num_tab
@ -105,6 +110,11 @@ Providers
.. hlist::
:columns: 3
* :c:data:`cfg_seniority_index`
* :c:data:`cholesky_ao_num`
* :c:data:`diagonal_h_matrix_on_psi_det`
* :c:data:`nsomomax`
* :c:data:`ormas_max_e`
* :c:data:`psi_det_hii`
* :c:data:`psi_selectors_diag_h_mat`

View File

@ -25,7 +25,7 @@ Providers
.. code:: fortran
character*(128) :: ezfio_filename
character*(1024) :: ezfio_filename
Name of EZFIO file. It is obtained from the QPACKAGE_INPUT environment
@ -36,26 +36,51 @@ Providers
.. hlist::
:columns: 3
* :c:data:`file_lock`
* :c:data:`mpi_initialized`
* :c:data:`output_wall_time_0`
Needed by:
.. hlist::
:columns: 3
* :c:data:`absolute_eig`
* :c:data:`act_2_rdm_aa_mo`
* :c:data:`act_2_rdm_ab_mo`
* :c:data:`act_2_rdm_bb_mo`
* :c:data:`act_2_rdm_spin_trace_mo`
* :c:data:`act_mos_opt`
* :c:data:`adaptive_pt2_max`
* :c:data:`ao_cartesian`
* :c:data:`ao_cholesky_threshold`
* :c:data:`ao_coef`
* :c:data:`ao_expo`
* :c:data:`ao_expo_im`
* :c:data:`ao_expo_phase`
* :c:data:`ao_expo_pw`
* :c:data:`ao_integrals_threshold`
* :c:data:`ao_md5`
* :c:data:`ao_normalized`
* :c:data:`ao_nucl`
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals_threshold`
* :c:data:`ao_power`
* :c:data:`ao_prim_num`
* :c:data:`ao_two_e_integrals_erf_in_map`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`cas_bitmask`
* :c:data:`avoid_saddle`
* :c:data:`basis`
* :c:data:`basis_nucleus_index`
* :c:data:`calc_dipole_moment`
* :c:data:`calc_energy_components`
* :c:data:`calc_osc_str`
* :c:data:`calc_tr_dipole_moment`
* :c:data:`correlation_energy_ratio_max`
* :c:data:`correlation_functional`
* :c:data:`criterion_casscf`
* :c:data:`csf_based`
* :c:data:`damping_for_rs_dft`
* :c:data:`data_energy_proj`
* :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
@ -63,67 +88,106 @@ Providers
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo`
* :c:data:`davidson_sze_max`
* :c:data:`disk_access_nuclear_repulsion`
* :c:data:`density_for_dft`
* :c:data:`diag_hess_cas`
* :c:data:`disk_based_davidson`
* :c:data:`distributed_davidson`
* :c:data:`do_direct_integrals`
* :c:data:`do_ao_cholesky`
* :c:data:`do_mom`
* :c:data:`do_ormas`
* :c:data:`do_pseudo`
* :c:data:`do_pt2`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`elec_num`
* :c:data:`energy_iterations`
* :c:data:`exchange_functional`
* :c:data:`excitation_alpha_max`
* :c:data:`excitation_beta_max`
* :c:data:`excitation_max`
* :c:data:`excitation_ref`
* :c:data:`ezfio_work_dir`
* :c:data:`fast_2rdm`
* :c:data:`frozen_orb_scf`
* :c:data:`generators_bitmask`
* :c:data:`generators_bitmask_restart`
* :c:data:`h0_type`
* :c:data:`io_ao_integrals_e_n`
* :c:data:`hess_cv_cv`
* :c:data:`hf_exchange`
* :c:data:`io_ao_cholesky`
* :c:data:`io_ao_integrals_kinetic`
* :c:data:`io_ao_integrals_n_e`
* :c:data:`io_ao_integrals_overlap`
* :c:data:`io_ao_integrals_pseudo`
* :c:data:`io_ao_one_e_integrals`
* :c:data:`io_ao_two_e_integrals`
* :c:data:`io_ao_two_e_integrals_erf`
* :c:data:`io_mo_integrals_e_n`
* :c:data:`io_mo_cholesky`
* :c:data:`io_mo_integrals_kinetic`
* :c:data:`io_mo_integrals_n_e`
* :c:data:`io_mo_integrals_pseudo`
* :c:data:`io_mo_one_e_integrals`
* :c:data:`io_mo_two_e_integrals`
* :c:data:`io_mo_two_e_integrals_erf`
* :c:data:`io_nuclear_repulsion`
* :c:data:`io_two_body_rdm_aa`
* :c:data:`io_two_body_rdm_ab`
* :c:data:`io_two_body_rdm_bb`
* :c:data:`io_two_body_rdm_spin_trace`
* :c:data:`is_periodic`
* :c:data:`json_filename`
* :c:data:`level_shift`
* :c:data:`level_shift_casscf`
* :c:data:`lin_dep_cutoff`
* :c:data:`max_dim_diis`
* :c:data:`mo_class`
* :c:data:`mo_coef`
* :c:data:`mo_coef_aux`
* :c:data:`mo_coef_imag`
* :c:data:`mo_guess_type`
* :c:data:`mo_integrals_cache_shift`
* :c:data:`mo_integrals_threshold`
* :c:data:`mo_label`
* :c:data:`mo_num`
* :c:data:`mo_occ`
* :c:data:`mo_two_e_integrals_erf_in_map`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mu_dft_type`
* :c:data:`mu_erf`
* :c:data:`n_cas_bitmask`
* :c:data:`n_big_act_orb`
* :c:data:`n_det`
* :c:data:`n_det_iterations`
* :c:data:`n_det_max`
* :c:data:`n_det_max_full`
* :c:data:`n_det_max_opt`
* :c:data:`n_det_print_wf`
* :c:data:`n_generators_bitmask`
* :c:data:`n_generators_bitmask_restart`
* :c:data:`n_it_scf_max`
* :c:data:`n_iter`
* :c:data:`n_pts_charge`
* :c:data:`n_states`
* :c:data:`n_states_diag`
* :c:data:`no_ivvv_integrals`
* :c:data:`no_vvv_integrals`
* :c:data:`no_vvvv_integrals`
* :c:data:`nb_it_max_lambda`
* :c:data:`nb_it_max_pre_search`
* :c:data:`no_core_density`
* :c:data:`no_oa_or_av_opt`
* :c:data:`normalize_dm`
* :c:data:`nucl_charge`
* :c:data:`nucl_charge_remove`
* :c:data:`nucl_coord`
* :c:data:`nucl_label`
* :c:data:`nucl_num`
* :c:data:`nucleus_shell_num`
* :c:data:`only_expected_s2`
* :c:data:`optimization_max_nb_iter`
* :c:data:`optimization_method`
* :c:data:`ormas_max_e`
* :c:data:`ormas_min_e`
* :c:data:`ormas_mstart`
* :c:data:`ormas_n_space`
* :c:data:`point_charges`
* :c:data:`prim_coef`
* :c:data:`prim_expo`
* :c:data:`prim_normalization_factor`
* :c:data:`prim_num`
* :c:data:`primitives_normalized`
* :c:data:`print_all_transitions`
* :c:data:`pruning`
* :c:data:`pseudo_dz_k`
* :c:data:`pseudo_dz_kl`
* :c:data:`pseudo_grid_rmax`
@ -139,24 +203,58 @@ Providers
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`pt2_iterations`
* :c:data:`pt2_max`
* :c:data:`pt2_min_casscf`
* :c:data:`pt2_min_parallel_tasks`
* :c:data:`pt2_relative_error`
* :c:data:`pts_charge_coord`
* :c:data:`pts_charge_z`
* :c:data:`qp_stop_filename`
* :c:data:`read_wf`
* :c:data:`restore_symm`
* :c:data:`s2_eig`
* :c:data:`save_threshold`
* :c:data:`save_wf_after_selection`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`seniority_max`
* :c:data:`shell_ang_mom`
* :c:data:`shell_index`
* :c:data:`shell_normalization_factor`
* :c:data:`shell_num`
* :c:data:`shell_prim_num`
* :c:data:`small_active_space`
* :c:data:`state_following`
* :c:data:`state_following_casscf`
* :c:data:`target_energy`
* :c:data:`thresh_casscf`
* :c:data:`thresh_cc`
* :c:data:`thresh_delta`
* :c:data:`thresh_eig`
* :c:data:`thresh_model`
* :c:data:`thresh_model_2`
* :c:data:`thresh_opt_max_elem_grad`
* :c:data:`thresh_rho`
* :c:data:`thresh_rho_2`
* :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`thresh_wtg`
* :c:data:`thresh_wtg2`
* :c:data:`threshold_davidson`
* :c:data:`threshold_davidson_from_pt2`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`threshold_nonsym_davidson`
* :c:data:`twice_hierarchy_max`
* :c:data:`typ`
* :c:data:`use_cgtos`
* :c:data:`use_only_lr`
* :c:data:`variance_max`
* :c:data:`version_avoid_saddle`
* :c:data:`version_lambda_search`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
* :c:data:`without_diagonal`
.. c:var:: ezfio_work_dir
@ -166,7 +264,7 @@ Providers
.. code:: fortran
character*(128) :: ezfio_work_dir
character*(1024) :: ezfio_work_dir
EZFIO/work/
@ -178,6 +276,36 @@ Providers
* :c:data:`ezfio_filename`
Needed by:
.. hlist::
:columns: 3
* :c:data:`cholesky_ao_num`
* :c:data:`cholesky_mo_num`
* :c:data:`cholesky_mo_transp`
* :c:data:`ezfio_work_dir_pid`
.. c:var:: ezfio_work_dir_pid
File : :file:`ezfio_files/ezfio.irp.f`
.. code:: fortran
character*(1024) :: ezfio_work_dir_pid
EZFIO/work/pid_
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_work_dir`
.. c:var:: file_lock
@ -192,6 +320,40 @@ Providers
OpenMP Lock for I/O
Needed by:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`json_filename`
* :c:data:`json_unit`
* :c:data:`nthreads_davidson`
* :c:data:`nthreads_pt2`
* :c:data:`qp_max_mem`
.. c:var:: nthreads_pt2
File : :file:`ezfio_files/environment.irp.f`
.. code:: fortran
integer :: nthreads_pt2
Number of threads for Davidson
Needs:
.. hlist::
:columns: 3
* :c:data:`file_lock`
* :c:data:`mpi_master`
* :c:data:`nproc`
.. c:var:: output_cpu_time_0
@ -212,103 +374,15 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_cartesian`
* :c:data:`ao_coef`
* :c:data:`ao_expo`
* :c:data:`ao_integrals_threshold`
* :c:data:`ao_md5`
* :c:data:`ao_nucl`
* :c:data:`ao_num`
* :c:data:`ao_power`
* :c:data:`ao_prim_num`
* :c:data:`ci_energy`
* :c:data:`correlation_energy_ratio_max`
* :c:data:`data_energy_proj`
* :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo`
* :c:data:`davidson_sze_max`
* :c:data:`disk_access_nuclear_repulsion`
* :c:data:`disk_based_davidson`
* :c:data:`distributed_davidson`
* :c:data:`do_direct_integrals`
* :c:data:`do_pseudo`
* :c:data:`do_pt2`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`energy_iterations`
* :c:data:`frozen_orb_scf`
* :c:data:`h0_type`
* :c:data:`io_ao_integrals_e_n`
* :c:data:`io_ao_integrals_kinetic`
* :c:data:`io_ao_integrals_overlap`
* :c:data:`io_ao_integrals_pseudo`
* :c:data:`io_ao_one_e_integrals`
* :c:data:`io_ao_two_e_integrals`
* :c:data:`io_ao_two_e_integrals_erf`
* :c:data:`io_mo_integrals_e_n`
* :c:data:`io_mo_integrals_kinetic`
* :c:data:`io_mo_integrals_pseudo`
* :c:data:`io_mo_one_e_integrals`
* :c:data:`io_mo_two_e_integrals`
* :c:data:`io_mo_two_e_integrals_erf`
* :c:data:`level_shift`
* :c:data:`max_dim_diis`
* :c:data:`mo_class`
* :c:data:`mo_guess_type`
* :c:data:`mo_integrals_threshold`
* :c:data:`mu_erf`
* :c:data:`ezfio_filename`
* :c:data:`n_det_generators`
* :c:data:`n_det_iterations`
* :c:data:`n_det_max`
* :c:data:`n_det_max_full`
* :c:data:`n_det_print_wf`
* :c:data:`n_det_selectors`
* :c:data:`n_it_scf_max`
* :c:data:`n_iter`
* :c:data:`n_states`
* :c:data:`n_states_diag`
* :c:data:`no_ivvv_integrals`
* :c:data:`no_vvv_integrals`
* :c:data:`no_vvvv_integrals`
* :c:data:`nucl_charge`
* :c:data:`nucl_charge_remove`
* :c:data:`n_pts_charge`
* :c:data:`nucl_coord`
* :c:data:`nucl_label`
* :c:data:`nucl_num`
* :c:data:`nuclear_repulsion`
* :c:data:`only_expected_s2`
* :c:data:`pseudo_dz_k`
* :c:data:`pseudo_dz_kl`
* :c:data:`pseudo_grid_rmax`
* :c:data:`pseudo_grid_size`
* :c:data:`pseudo_klocmax`
* :c:data:`pseudo_kmax`
* :c:data:`pseudo_lmax`
* :c:data:`pseudo_n_k`
* :c:data:`pseudo_n_kl`
* :c:data:`pseudo_sym`
* :c:data:`pseudo_v_k`
* :c:data:`pseudo_v_kl`
* :c:data:`pt2_iterations`
* :c:data:`pt2_max`
* :c:data:`pt2_relative_error`
* :c:data:`read_wf`
* :c:data:`s2_eig`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`variance_max`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
* :c:data:`prim_normalization_factor`
* :c:data:`shell_normalization_factor`
.. c:var:: output_wall_time_0
@ -329,103 +403,15 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_cartesian`
* :c:data:`ao_coef`
* :c:data:`ao_expo`
* :c:data:`ao_integrals_threshold`
* :c:data:`ao_md5`
* :c:data:`ao_nucl`
* :c:data:`ao_num`
* :c:data:`ao_power`
* :c:data:`ao_prim_num`
* :c:data:`ci_energy`
* :c:data:`correlation_energy_ratio_max`
* :c:data:`data_energy_proj`
* :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo`
* :c:data:`davidson_sze_max`
* :c:data:`disk_access_nuclear_repulsion`
* :c:data:`disk_based_davidson`
* :c:data:`distributed_davidson`
* :c:data:`do_direct_integrals`
* :c:data:`do_pseudo`
* :c:data:`do_pt2`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`energy_iterations`
* :c:data:`frozen_orb_scf`
* :c:data:`h0_type`
* :c:data:`io_ao_integrals_e_n`
* :c:data:`io_ao_integrals_kinetic`
* :c:data:`io_ao_integrals_overlap`
* :c:data:`io_ao_integrals_pseudo`
* :c:data:`io_ao_one_e_integrals`
* :c:data:`io_ao_two_e_integrals`
* :c:data:`io_ao_two_e_integrals_erf`
* :c:data:`io_mo_integrals_e_n`
* :c:data:`io_mo_integrals_kinetic`
* :c:data:`io_mo_integrals_pseudo`
* :c:data:`io_mo_one_e_integrals`
* :c:data:`io_mo_two_e_integrals`
* :c:data:`io_mo_two_e_integrals_erf`
* :c:data:`level_shift`
* :c:data:`max_dim_diis`
* :c:data:`mo_class`
* :c:data:`mo_guess_type`
* :c:data:`mo_integrals_threshold`
* :c:data:`mu_erf`
* :c:data:`ezfio_filename`
* :c:data:`n_det_generators`
* :c:data:`n_det_iterations`
* :c:data:`n_det_max`
* :c:data:`n_det_max_full`
* :c:data:`n_det_print_wf`
* :c:data:`n_det_selectors`
* :c:data:`n_it_scf_max`
* :c:data:`n_iter`
* :c:data:`n_states`
* :c:data:`n_states_diag`
* :c:data:`no_ivvv_integrals`
* :c:data:`no_vvv_integrals`
* :c:data:`no_vvvv_integrals`
* :c:data:`nucl_charge`
* :c:data:`nucl_charge_remove`
* :c:data:`n_pts_charge`
* :c:data:`nucl_coord`
* :c:data:`nucl_label`
* :c:data:`nucl_num`
* :c:data:`nuclear_repulsion`
* :c:data:`only_expected_s2`
* :c:data:`pseudo_dz_k`
* :c:data:`pseudo_dz_kl`
* :c:data:`pseudo_grid_rmax`
* :c:data:`pseudo_grid_size`
* :c:data:`pseudo_klocmax`
* :c:data:`pseudo_kmax`
* :c:data:`pseudo_lmax`
* :c:data:`pseudo_n_k`
* :c:data:`pseudo_n_kl`
* :c:data:`pseudo_sym`
* :c:data:`pseudo_v_k`
* :c:data:`pseudo_v_kl`
* :c:data:`pt2_iterations`
* :c:data:`pt2_max`
* :c:data:`pt2_relative_error`
* :c:data:`read_wf`
* :c:data:`s2_eig`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`variance_max`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
* :c:data:`prim_normalization_factor`
* :c:data:`shell_normalization_factor`
.. c:var:: qp_kill_filename
@ -435,8 +421,8 @@ Providers
.. code:: fortran
character*(128) :: qp_stop_filename
character*(128) :: qp_kill_filename
character*(256) :: qp_stop_filename
character*(256) :: qp_kill_filename
integer :: qp_stop_variable
@ -458,8 +444,8 @@ Providers
.. code:: fortran
character*(128) :: qp_stop_filename
character*(128) :: qp_kill_filename
character*(256) :: qp_stop_filename
character*(256) :: qp_kill_filename
integer :: qp_stop_variable
@ -481,8 +467,8 @@ Providers
.. code:: fortran
character*(128) :: qp_stop_filename
character*(128) :: qp_kill_filename
character*(256) :: qp_stop_filename
character*(256) :: qp_kill_filename
integer :: qp_stop_variable
@ -524,6 +510,57 @@ Subroutines / functions
.. c:function:: lock_io:
File : :file:`ezfio_files/lock.irp.f`
.. code:: fortran
subroutine lock_io()
Needs to be called because before doing I/O because internal read and write
are not thread safe.
Needs:
.. hlist::
:columns: 3
* :c:data:`file_lock`
Called by:
.. hlist::
:columns: 3
* :c:func:`davidson_slave_work`
* :c:func:`format_w_error`
* :c:func:`json_close`
* :c:data:`json_filename`
* :c:data:`json_unit`
* :c:func:`load_mo_integrals`
* :c:data:`nthreads_davidson`
* :c:data:`nthreads_pt2`
* :c:data:`qp_max_mem`
* :c:func:`read_array_two_rdm`
* :c:func:`read_array_two_trans_rdm`
* :c:func:`resident_memory`
* :c:func:`roothaan_hall_scf`
* :c:func:`total_memory`
* :c:func:`write_array_two_rdm`
* :c:func:`write_array_two_trans_rdm`
* :c:func:`write_cipsi_json`
Calls:
.. hlist::
:columns: 3
* :c:func:`omp_set_lock`
.. c:function:: qp_stop:
@ -544,6 +581,57 @@ Subroutines / functions
* :c:data:`qp_stop_filename`
.. c:function:: unlock_io:
File : :file:`ezfio_files/lock.irp.f`
.. code:: fortran
subroutine unlock_io()
Needs to be called because afterdoing I/O because internal read and write
are not thread safe.
Needs:
.. hlist::
:columns: 3
* :c:data:`file_lock`
Called by:
.. hlist::
:columns: 3
* :c:func:`davidson_slave_work`
* :c:func:`format_w_error`
* :c:func:`json_close`
* :c:data:`json_filename`
* :c:data:`json_unit`
* :c:func:`load_mo_integrals`
* :c:data:`nthreads_davidson`
* :c:data:`nthreads_pt2`
* :c:data:`qp_max_mem`
* :c:func:`read_array_two_rdm`
* :c:func:`read_array_two_trans_rdm`
* :c:func:`resident_memory`
* :c:func:`roothaan_hall_scf`
* :c:func:`total_memory`
* :c:func:`write_array_two_rdm`
* :c:func:`write_array_two_trans_rdm`
* :c:func:`write_cipsi_json`
Calls:
.. hlist::
:columns: 3
* :c:func:`omp_unset_lock`
.. c:function:: write_bool:
@ -588,9 +676,20 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`ao_ortho_canonical_coef`
* :c:data:`ci_energy`
* :c:func:`damping_scf`
* :c:func:`dav_double_dressed`
* :c:func:`davidson_diag_csf_hjj`
* :c:func:`davidson_diag_hjj`
* :c:func:`davidson_diag_hjj_sjj`
* :c:func:`davidson_diag_nonsym_hjj`
* :c:func:`davidson_general`
* :c:func:`davidson_general_diag_dressed_ext_rout_nonsym_b1space`
* :c:func:`davidson_general_ext_rout`
* :c:func:`davidson_general_ext_rout_diag_dressed`
* :c:func:`davidson_general_ext_rout_dressed`
* :c:func:`davidson_general_ext_rout_nonsym_b1space`
* :c:data:`nuclear_repulsion`
* :c:data:`psi_coef_max`
* :c:data:`pt2_e0_denominator`
@ -626,17 +725,28 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:func:`dav_double_dressed`
* :c:func:`davidson_diag_csf_hjj`
* :c:func:`davidson_diag_hjj`
* :c:func:`davidson_diag_hjj_sjj`
* :c:func:`davidson_diag_nonsym_hjj`
* :c:func:`davidson_general`
* :c:func:`davidson_general_diag_dressed_ext_rout_nonsym_b1space`
* :c:func:`davidson_general_ext_rout`
* :c:func:`davidson_general_ext_rout_diag_dressed`
* :c:func:`davidson_general_ext_rout_dressed`
* :c:func:`davidson_general_ext_rout_nonsym_b1space`
* :c:func:`make_s2_eigenfunction`
* :c:data:`mo_num`
* :c:data:`n_cas_bitmask`
* :c:data:`n_act_orb`
* :c:data:`n_core_orb`
* :c:data:`n_del_orb`
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_generators_bitmask`
* :c:data:`n_generators_bitmask_restart`
* :c:data:`n_inact_orb`
* :c:data:`n_int`
* :c:data:`n_virt_orb`
* :c:data:`nthreads_davidson`
* :c:data:`nthreads_pt2`
* :c:data:`psi_cas`
@ -648,6 +758,7 @@ Subroutines / functions
* :c:data:`qp_max_mem`
* :c:func:`remove_small_contributions`
* :c:func:`save_wavefunction_general`
* :c:func:`save_wavefunction_general_unormalized`
* :c:func:`save_wavefunction_specified`
* :c:func:`zmq_pt2`
@ -669,118 +780,40 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`output_wall_time_0`
* :c:data:`mpi_master`
* :c:data:`output_wall_time_0`
Called by:
.. hlist::
:columns: 3
* :c:data:`ao_cartesian`
* :c:data:`ao_coef`
* :c:data:`ao_expo`
* :c:data:`ao_integrals_threshold`
* :c:data:`ao_md5`
* :c:data:`ao_nucl`
* :c:data:`ao_num`
* :c:data:`ao_power`
* :c:data:`ao_prim_num`
* :c:data:`ci_energy`
* :c:data:`correlation_energy_ratio_max`
* :c:func:`damping_scf`
* :c:data:`data_energy_proj`
* :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo`
* :c:func:`dav_double_dressed`
* :c:func:`davidson_diag_csf_hjj`
* :c:func:`davidson_diag_hjj`
* :c:func:`davidson_diag_hjj_sjj`
* :c:data:`davidson_sze_max`
* :c:data:`disk_access_nuclear_repulsion`
* :c:data:`disk_based_davidson`
* :c:data:`distributed_davidson`
* :c:data:`do_direct_integrals`
* :c:data:`do_pseudo`
* :c:data:`do_pt2`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`energy_iterations`
* :c:data:`frozen_orb_scf`
* :c:data:`h0_type`
* :c:data:`io_ao_integrals_e_n`
* :c:data:`io_ao_integrals_kinetic`
* :c:data:`io_ao_integrals_overlap`
* :c:data:`io_ao_integrals_pseudo`
* :c:data:`io_ao_one_e_integrals`
* :c:data:`io_ao_two_e_integrals`
* :c:data:`io_ao_two_e_integrals_erf`
* :c:data:`io_mo_integrals_e_n`
* :c:data:`io_mo_integrals_kinetic`
* :c:data:`io_mo_integrals_pseudo`
* :c:data:`io_mo_one_e_integrals`
* :c:data:`io_mo_two_e_integrals`
* :c:data:`io_mo_two_e_integrals_erf`
* :c:data:`level_shift`
* :c:func:`davidson_diag_nonsym_hjj`
* :c:func:`davidson_general`
* :c:func:`davidson_general_diag_dressed_ext_rout_nonsym_b1space`
* :c:func:`davidson_general_ext_rout`
* :c:func:`davidson_general_ext_rout_diag_dressed`
* :c:func:`davidson_general_ext_rout_dressed`
* :c:func:`davidson_general_ext_rout_nonsym_b1space`
* :c:func:`make_s2_eigenfunction`
* :c:data:`max_dim_diis`
* :c:func:`mo_as_eigvectors_of_mo_matrix`
* :c:func:`mo_as_svd_vectors_of_mo_matrix`
* :c:func:`mo_as_svd_vectors_of_mo_matrix_eig`
* :c:data:`mo_class`
* :c:data:`mo_guess_type`
* :c:data:`mo_integrals_threshold`
* :c:data:`mu_erf`
* :c:func:`mo_coef_new_as_svd_vectors_of_mo_matrix_eig`
* :c:data:`n_det_generators`
* :c:data:`n_det_iterations`
* :c:data:`n_det_max`
* :c:data:`n_det_max_full`
* :c:data:`n_det_print_wf`
* :c:data:`n_det_selectors`
* :c:data:`n_it_scf_max`
* :c:data:`n_iter`
* :c:data:`n_states`
* :c:data:`n_states_diag`
* :c:data:`no_ivvv_integrals`
* :c:data:`no_vvv_integrals`
* :c:data:`no_vvvv_integrals`
* :c:data:`nucl_charge`
* :c:data:`nucl_charge_remove`
* :c:data:`n_pts_charge`
* :c:data:`nucl_coord`
* :c:data:`nucl_label`
* :c:data:`nucl_num`
* :c:data:`nuclear_repulsion`
* :c:data:`only_expected_s2`
* :c:data:`pseudo_dz_k`
* :c:data:`pseudo_dz_kl`
* :c:data:`pseudo_grid_rmax`
* :c:data:`pseudo_grid_size`
* :c:data:`pseudo_klocmax`
* :c:data:`pseudo_kmax`
* :c:data:`pseudo_lmax`
* :c:data:`pseudo_n_k`
* :c:data:`pseudo_n_kl`
* :c:data:`pseudo_sym`
* :c:data:`pseudo_v_k`
* :c:data:`pseudo_v_kl`
* :c:data:`pt2_iterations`
* :c:data:`pt2_max`
* :c:data:`pt2_relative_error`
* :c:data:`read_wf`
* :c:data:`prim_normalization_factor`
* :c:func:`roothaan_hall_scf`
* :c:data:`s2_eig`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`state_following`
* :c:data:`target_energy`
* :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`threshold_davidson`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`variance_max`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
* :c:data:`shell_normalization_factor`
Calls:

View File

@ -86,93 +86,38 @@ Programs
* :ref:`fci`
* :ref:`pt2`
Providers
---------
.. c:var:: do_ddci
File : :file:`fci/class.irp.f`
.. code:: fortran
logical :: do_only_1h1p
logical :: do_only_cas
logical :: do_ddci
In the FCI case, all those are always false
.. c:var:: do_only_1h1p
File : :file:`fci/class.irp.f`
.. code:: fortran
logical :: do_only_1h1p
logical :: do_only_cas
logical :: do_ddci
In the FCI case, all those are always false
.. c:var:: do_only_cas
File : :file:`fci/class.irp.f`
.. code:: fortran
logical :: do_only_1h1p
logical :: do_only_cas
logical :: do_ddci
In the FCI case, all those are always false
Subroutines / functions
-----------------------
.. c:function:: save_energy:
.. c:function:: write_c_ij_ab:
File : :file:`fci/save_energy.irp.f`
File : :file:`write_c_ij_ab.irp.f`
.. code:: fortran
subroutine save_energy(E,pt2)
subroutine write_c_ij_ab
Saves the energy in |EZFIO|.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_states`
Called by:
.. hlist::
:columns: 3
* :c:func:`run_cipsi`
* :c:func:`run_stochastic_cipsi`
* :c:data:`read_wf`
Calls:
.. hlist::
:columns: 3
* :c:func:`ezfio_set_fci_energy`
* :c:func:`ezfio_set_fci_energy_pt2`
* :c:func:`routine`
Touches:
.. hlist::
:columns: 3
* :c:data:`read_wf`

View File

@ -17,3 +17,334 @@ the generators as the |CAS| determinants, which can be useful to define post-CAS
Providers
---------
.. c:var:: n_det_generators
File : :file:`generators_cas/generators.irp.f`
.. code:: fortran
integer :: n_det_generators
Number of generator detetrminants
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`output_wall_time_0`
* :c:data:`psi_det_sorted`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask`
Needed by:
.. hlist::
:columns: 3
* :c:data:`global_selection_buffer`
* :c:data:`n_det_selectors`
* :c:data:`psi_det_generators`
* :c:data:`pt2_f`
* :c:data:`pt2_j`
* :c:data:`pt2_n_tasks`
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_u`
* :c:data:`pt2_w`
.. c:var:: psi_coef_generators
File : :file:`generators_cas/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_w`
.. c:var:: psi_coef_sorted_gen
File : :file:`generators_cas/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_w`
.. c:var:: psi_det_generators
File : :file:`generators_cas/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_w`
.. c:var:: psi_det_sorted_gen
File : :file:`generators_cas/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_w`
.. c:var:: psi_det_sorted_gen_order
File : :file:`generators_cas/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_w`
.. c:var:: select_max
File : :file:`generators_cas/generators.irp.f`
.. code:: fortran
double precision, allocatable :: select_max (size_select_max)
Memo to skip useless selectors
Needs:
.. hlist::
:columns: 3
* :c:data:`size_select_max`
.. c:var:: size_select_max
File : :file:`generators_cas/generators.irp.f`
.. code:: fortran
integer :: size_select_max
Size of the select_max array
Needed by:
.. hlist::
:columns: 3
* :c:data:`select_max`
Subroutines / functions
-----------------------
.. c:function:: extract_cas:
File : :file:`generators_cas/extract_cas.irp.f`
.. code:: fortran
subroutine extract_cas
Replaces the total wave function by the normalized projection on the CAS.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_generators`
Touches:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`psi_coef`
* :c:data:`psi_det`

View File

@ -42,252 +42,3 @@ Providers
* :c:data:`psi_det_generators`
.. c:var:: n_det_generators
File : :file:`generators_full/generators.irp.f`
.. code:: fortran
integer :: n_det_generators
For Single reference wave functions, the number of generators is 1 : the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`output_wall_time_0`
* :c:data:`psi_det_sorted`
* :c:data:`threshold_generators`
Needed by:
.. hlist::
:columns: 3
* :c:data:`degree_max_generators`
* :c:data:`global_selection_buffer`
* :c:data:`n_det_selectors`
* :c:data:`pt2_f`
* :c:data:`pt2_j`
* :c:data:`pt2_n_tasks`
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_u`
* :c:data:`pt2_w`
.. c:var:: psi_coef_generators
File : :file:`generators_full/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
Needed by:
.. hlist::
:columns: 3
* :c:data:`degree_max_generators`
.. c:var:: psi_coef_sorted_gen
File : :file:`generators_full/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_w`
.. c:var:: psi_det_generators
File : :file:`generators_full/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
Needed by:
.. hlist::
:columns: 3
* :c:data:`degree_max_generators`
.. c:var:: psi_det_sorted_gen
File : :file:`generators_full/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_w`
.. c:var:: psi_det_sorted_gen_order
File : :file:`generators_full/generators.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
For Single reference wave functions, the generator is the
Hartree-Fock determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_w`
.. c:var:: select_max
File : :file:`generators_full/generators.irp.f`
.. code:: fortran
double precision, allocatable :: select_max (size_select_max)
Memo to skip useless selectors
Needs:
.. hlist::
:columns: 3
* :c:data:`size_select_max`
.. c:var:: size_select_max
File : :file:`generators_full/generators.irp.f`
.. code:: fortran
integer :: size_select_max
Size of the select_max array
Needed by:
.. hlist::
:columns: 3
* :c:data:`select_max`

View File

@ -51,7 +51,6 @@ Programs
--------
* :ref:`scf`
* :ref:`test`
Providers
---------
@ -83,8 +82,10 @@ Providers
* :c:data:`ao_overlap_abs`
* :c:data:`ao_power`
* :c:data:`ao_prim_num`
* :c:data:`ao_two_e_integral_alpha_chol`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`do_ao_cholesky`
* :c:data:`do_direct_integrals`
* :c:data:`is_periodic`
* :c:data:`n_pt_max_integrals`
@ -92,6 +93,8 @@ Providers
* :c:data:`read_ao_two_e_integrals`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
* :c:data:`use_cgtos`
* :c:data:`use_only_lr`
Needed by:
@ -102,6 +105,41 @@ Providers
* :c:data:`hf_energy`
.. c:var:: ao_two_e_integral_alpha_chol
File : :file:`hartree_fock/fock_matrix_hf.irp.f`
.. code:: fortran
double precision, allocatable :: ao_two_e_integral_alpha_chol (ao_num,ao_num)
double precision, allocatable :: ao_two_e_integral_beta_chol (ao_num,ao_num)
Alpha and Beta Fock matrices in AO basis set
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`cholesky_ao_num`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`qp_max_mem`
* :c:data:`scf_density_matrix_ao`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_two_e_integral_alpha`
.. c:var:: ao_two_e_integral_beta
@ -129,8 +167,10 @@ Providers
* :c:data:`ao_overlap_abs`
* :c:data:`ao_power`
* :c:data:`ao_prim_num`
* :c:data:`ao_two_e_integral_alpha_chol`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`do_ao_cholesky`
* :c:data:`do_direct_integrals`
* :c:data:`is_periodic`
* :c:data:`n_pt_max_integrals`
@ -138,6 +178,8 @@ Providers
* :c:data:`read_ao_two_e_integrals`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
* :c:data:`use_cgtos`
* :c:data:`use_only_lr`
Needed by:
@ -148,6 +190,41 @@ Providers
* :c:data:`hf_energy`
.. c:var:: ao_two_e_integral_beta_chol
File : :file:`hartree_fock/fock_matrix_hf.irp.f`
.. code:: fortran
double precision, allocatable :: ao_two_e_integral_alpha_chol (ao_num,ao_num)
double precision, allocatable :: ao_two_e_integral_beta_chol (ao_num,ao_num)
Alpha and Beta Fock matrices in AO basis set
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`cholesky_ao_num`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`qp_max_mem`
* :c:data:`scf_density_matrix_ao`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_two_e_integral_alpha`
.. c:var:: extra_e_contrib_density
@ -202,6 +279,7 @@ Providers
* :c:data:`fock_matrix_ao`
* :c:data:`fock_matrix_mo_alpha`
* :c:data:`fock_matrix_mo_beta`
* :c:data:`mcscf_fock_alpha_ao`
* :c:data:`scf_energy`
@ -235,6 +313,7 @@ Providers
* :c:data:`fock_matrix_ao`
* :c:data:`fock_matrix_mo_alpha`
* :c:data:`fock_matrix_mo_beta`
* :c:data:`mcscf_fock_alpha_ao`
* :c:data:`scf_energy`
@ -266,6 +345,58 @@ Providers
.. c:var:: hf_kinetic_energy
File : :file:`hartree_fock/hf_energy.irp.f`
.. code:: fortran
double precision :: hf_kinetic_energy
double precision :: hf_n_e_energy
Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_integrals_n_e`
* :c:data:`ao_kinetic_integrals`
* :c:data:`ao_num`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
.. c:var:: hf_n_e_energy
File : :file:`hartree_fock/hf_energy.irp.f`
.. code:: fortran
double precision :: hf_kinetic_energy
double precision :: hf_n_e_energy
Hartree-Fock energy containing the nuclear repulsion, and its one- and two-body components.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_integrals_n_e`
* :c:data:`ao_kinetic_integrals`
* :c:data:`ao_num`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
.. c:var:: hf_one_electron_energy
@ -344,7 +475,6 @@ Subroutines / functions
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_ortho_lowdin_coef`
* :c:data:`ezfio_filename`
* :c:data:`mo_coef`
* :c:data:`mo_guess_type`
@ -379,3 +509,149 @@ Subroutines / functions
* :c:data:`mo_coef`
* :c:data:`mo_label`
.. c:function:: main:
File : :file:`hartree_fock/print_scf_int.irp.f`
.. code:: fortran
subroutine main()
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_integrals_map`
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`fock_matrix_ao`
* :c:data:`fock_matrix_mo_alpha`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Called by:
.. hlist::
:columns: 3
* :c:func:`print_scf_int`
.. c:function:: print_fock_diag:
File : :file:`hartree_fock/print_fock_diag.irp.f`
.. code:: fortran
subroutine print_fock_diag
Needs:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_mo`
* :c:data:`mo_num`
.. c:function:: print_pseudo_overlap:
File : :file:`hartree_fock/print_pseudo_overlap.irp.f`
.. code:: fortran
subroutine print_pseudo_overlap
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_overlap`
* :c:data:`list_core`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
.. c:function:: print_scf_int:
File : :file:`hartree_fock/print_scf_int.irp.f`
.. code:: fortran
subroutine print_scf_int
Calls:
.. hlist::
:columns: 3
* :c:func:`main`
.. c:function:: run:
File : :file:`hartree_fock/scf.irp.f`
.. code:: fortran
subroutine run
Run SCF calculation
Needs:
.. hlist::
:columns: 3
* :c:data:`json_int_fmt`
* :c:data:`json_unit`
* :c:data:`mo_label`
* :c:data:`scf_energy`
Called by:
.. hlist::
:columns: 3
* :c:func:`casscf`
* :c:func:`scf`
Calls:
.. hlist::
:columns: 3
* :c:func:`ezfio_set_hartree_fock_energy`
* :c:func:`json_close`
* :c:func:`roothaan_hall_scf`
Touches:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`mo_coef`
* :c:data:`level_shift`
* :c:data:`mo_coef`

View File

@ -13,34 +13,33 @@ the |FCI| limit.
EZFIO parameters
----------------
.. option:: n_iter
Number of saved iterations
Default: 1
.. option:: n_det_iterations
Number of determinants at each iteration
.. option:: energy_iterations
The variational energy at each iteration
.. option:: pt2_iterations
The |PT2| correction at each iteration
Providers
---------
.. c:var:: energy_iterations
File : :file:`iterations/iterations.irp.f`
.. code:: fortran
double precision, allocatable :: energy_iterations (n_states,N_iter_max)
double precision, allocatable :: pt2_iterations (n_states,N_iter_max)
double precision, allocatable :: extrapolated_energy (N_iter_max,N_states)
The energy at each iteration for the extrapolations
Needs:
.. hlist::
:columns: 3
* :c:data:`n_iter_max`
* :c:data:`n_states`
.. c:var:: extrapolated_energy
@ -48,10 +47,96 @@ Providers
.. code:: fortran
double precision, allocatable :: extrapolated_energy (N_iter,N_states)
double precision, allocatable :: energy_iterations (n_states,N_iter_max)
double precision, allocatable :: pt2_iterations (n_states,N_iter_max)
double precision, allocatable :: extrapolated_energy (N_iter_max,N_states)
Extrapolated energy, using E_var = f(PT2) where PT2=0
The energy at each iteration for the extrapolations
Needs:
.. hlist::
:columns: 3
* :c:data:`n_iter_max`
* :c:data:`n_states`
.. c:var:: n_iter
File : :file:`iterations/iterations.irp.f`
.. code:: fortran
integer :: n_iter
Number of CIPSI iterations
.. c:var:: n_iter_max
File : :file:`iterations/iterations.irp.f`
.. code:: fortran
integer :: n_iter_max
Max number of iterations for extrapolations
Needed by:
.. hlist::
:columns: 3
* :c:data:`energy_iterations`
.. c:var:: pt2_iterations
File : :file:`iterations/iterations.irp.f`
.. code:: fortran
double precision, allocatable :: energy_iterations (n_states,N_iter_max)
double precision, allocatable :: pt2_iterations (n_states,N_iter_max)
double precision, allocatable :: extrapolated_energy (N_iter_max,N_states)
The energy at each iteration for the extrapolations
Needs:
.. hlist::
:columns: 3
* :c:data:`n_iter_max`
* :c:data:`n_states`
Subroutines / functions
-----------------------
.. c:function:: increment_n_iter:
File : :file:`iterations/iterations.irp.f`
.. code:: fortran
subroutine increment_n_iter(e, pt2_data)
Does what is necessary to increment n_iter
Needs:
@ -61,45 +146,25 @@ Providers
* :c:data:`energy_iterations`
* :c:data:`n_det`
* :c:data:`n_iter`
* :c:data:`n_iter_max`
* :c:data:`n_states`
* :c:data:`pt2_iterations`
.. c:var:: n_iter
File : :file:`iterations/io.irp.f`
.. code:: fortran
integer :: n_iter
number of iterations
Needs:
Called by:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mpi_master`
* :c:data:`n_states`
* :c:data:`output_wall_time_0`
* :c:func:`run_cipsi`
* :c:func:`run_stochastic_cipsi`
Needed by:
Calls:
.. hlist::
:columns: 3
* :c:data:`extrapolated_energy`
* :c:func:`extrapolate_data`
Subroutines / functions
-----------------------
.. c:function:: print_extrapolated_energy:
@ -117,11 +182,10 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`extrapolated_energy`
* :c:data:`energy_iterations`
* :c:data:`n_det`
* :c:data:`n_iter`
* :c:data:`n_states`
* :c:data:`pt2_iterations`
Called by:
@ -139,7 +203,7 @@ Subroutines / functions
.. code:: fortran
subroutine print_summary(e_,pt2_data,pt2_data_err,n_det_,n_occ_pattern_,n_st,s2_)
subroutine print_summary(e_,pt2_data,pt2_data_err,n_det_,n_configuration_,n_st,s2_)
Print the extrapolated energy in the output
@ -150,6 +214,8 @@ Subroutines / functions
:columns: 3
* :c:data:`do_pt2`
* :c:data:`nsomomax`
* :c:data:`only_expected_s2`
* :c:data:`s2_eig`
Called by:
@ -160,59 +226,26 @@ Subroutines / functions
* :c:func:`run_cipsi`
* :c:func:`run_stochastic_cipsi`
Calls:
.. hlist::
:columns: 3
* :c:func:`print_energy_components`
.. c:function:: save_iterations:
.. c:function:: print_summary_tc:
File : :file:`iterations/iterations.irp.f`
File : :file:`iterations/summary_tc.irp.f`
.. code:: fortran
subroutine save_iterations(e_, pt2_,n_)
subroutine print_summary_tc(e_,pt2_data,pt2_data_err,n_det_,n_configuration_,n_st,s2_)
Update the energy in the EZFIO file.
Print the extrapolated energy in the output
Needs:
.. hlist::
:columns: 3
* :c:data:`energy_iterations`
* :c:data:`n_det_iterations`
* :c:data:`n_iter`
* :c:data:`n_states`
* :c:data:`pt2_iterations`
Called by:
.. hlist::
:columns: 3
* :c:func:`run_cipsi`
* :c:func:`run_stochastic_cipsi`
Calls:
.. hlist::
:columns: 3
* :c:func:`ezfio_set_iterations_energy_iterations`
* :c:func:`ezfio_set_iterations_n_det_iterations`
* :c:func:`ezfio_set_iterations_n_iter`
* :c:func:`ezfio_set_iterations_pt2_iterations`
Touches:
.. hlist::
:columns: 3
* :c:data:`n_iter`
* :c:data:`do_pt2`
* :c:data:`nsomomax`
* :c:data:`only_expected_s2`
* :c:data:`s2_eig`

View File

@ -46,10 +46,229 @@ Programs
--------
* :ref:`ks_scf`
* :ref:`print_mos`
Providers
---------
.. c:var:: ao_potential_alpha_xc
File : :file:`pot_functionals.irp.f`
.. code:: fortran
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`potential_c_alpha_ao`
* :c:data:`potential_x_alpha_ao`
* :c:data:`potential_xc_alpha_ao`
* :c:data:`same_xc_func`
Needed by:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`ks_energy`
.. c:var:: ao_potential_beta_xc
File : :file:`pot_functionals.irp.f`
.. code:: fortran
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`potential_c_alpha_ao`
* :c:data:`potential_x_alpha_ao`
* :c:data:`potential_xc_alpha_ao`
* :c:data:`same_xc_func`
Needed by:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`ks_energy`
.. c:var:: e_correlation_dft
File : :file:`pot_functionals.irp.f`
.. code:: fortran
double precision :: e_correlation_dft
Needs:
.. hlist::
:columns: 3
* :c:data:`energy_c`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
* :c:data:`ks_energy`
.. c:var:: e_exchange_dft
File : :file:`pot_functionals.irp.f`
.. code:: fortran
double precision :: e_exchange_dft
Needs:
.. hlist::
:columns: 3
* :c:data:`energy_x`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
* :c:data:`ks_energy`
.. c:var:: fock_matrix_alpha_no_xc_ao
File : :file:`fock_matrix_ks.irp.f`
.. code:: fortran
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)
Mono electronic an Coulomb matrix in ao basis set
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_two_e_integral_alpha`
Needed by:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
.. c:var:: fock_matrix_beta_no_xc_ao
File : :file:`fock_matrix_ks.irp.f`
.. code:: fortran
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)
Mono electronic an Coulomb matrix in ao basis set
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_two_e_integral_alpha`
Needed by:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
.. c:var:: fock_matrix_energy
File : :file:`ks_enery.irp.f`
.. code:: fortran
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_potential_alpha_xc`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`e_correlation_dft`
* :c:data:`e_exchange_dft`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`nuclear_repulsion`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
.. c:var:: ks_energy
@ -90,6 +309,153 @@ Providers
* :c:data:`extra_e_contrib_density`
.. c:var:: one_e_energy
File : :file:`ks_enery.irp.f`
.. code:: fortran
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_potential_alpha_xc`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`e_correlation_dft`
* :c:data:`e_exchange_dft`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`nuclear_repulsion`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
.. c:var:: trace_potential_xc
File : :file:`ks_enery.irp.f`
.. code:: fortran
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_potential_alpha_xc`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`e_correlation_dft`
* :c:data:`e_exchange_dft`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`nuclear_repulsion`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
.. c:var:: two_e_energy
File : :file:`ks_enery.irp.f`
.. code:: fortran
double precision :: ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_potential_alpha_xc`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`e_correlation_dft`
* :c:data:`e_exchange_dft`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`nuclear_repulsion`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
Subroutines / functions
-----------------------
.. c:function:: check_coherence_functional:
File : :file:`ks_scf.irp.f`
.. code:: fortran
subroutine check_coherence_functional
Needs:
.. hlist::
:columns: 3
* :c:data:`correlation_functional`
* :c:data:`exchange_functional`
Called by:
.. hlist::
:columns: 3
* :c:func:`ks_scf`

View File

@ -63,264 +63,6 @@ Programs
Providers
---------
.. c:var:: ao_potential_alpha_xc
File : :file:`pot_functionals.irp.f`
.. code:: fortran
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`potential_c_alpha_ao`
* :c:data:`potential_x_alpha_ao`
* :c:data:`potential_xc_alpha_ao`
* :c:data:`same_xc_func`
Needed by:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`rs_ks_energy`
.. c:var:: ao_potential_beta_xc
File : :file:`pot_functionals.irp.f`
.. code:: fortran
double precision, allocatable :: ao_potential_alpha_xc (ao_num,ao_num)
double precision, allocatable :: ao_potential_beta_xc (ao_num,ao_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`potential_c_alpha_ao`
* :c:data:`potential_x_alpha_ao`
* :c:data:`potential_xc_alpha_ao`
* :c:data:`same_xc_func`
Needed by:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`rs_ks_energy`
.. c:var:: e_correlation_dft
File : :file:`pot_functionals.irp.f`
.. code:: fortran
double precision :: e_correlation_dft
Needs:
.. hlist::
:columns: 3
* :c:data:`energy_c`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
* :c:data:`rs_ks_energy`
.. c:var:: e_exchange_dft
File : :file:`pot_functionals.irp.f`
.. code:: fortran
double precision :: e_exchange_dft
Needs:
.. hlist::
:columns: 3
* :c:data:`energy_x`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
* :c:data:`rs_ks_energy`
.. c:var:: fock_matrix_alpha_no_xc_ao
File : :file:`fock_matrix_rs_ks.irp.f`
.. code:: fortran
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)
Mono electronic an Coulomb matrix in ao basis set
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_two_e_integral_alpha`
Needed by:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
.. c:var:: fock_matrix_beta_no_xc_ao
File : :file:`fock_matrix_rs_ks.irp.f`
.. code:: fortran
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)
Mono electronic an Coulomb matrix in ao basis set
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_two_e_integral_alpha`
Needed by:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
.. c:var:: fock_matrix_energy
File : :file:`rs_ks_energy.irp.f`
.. code:: fortran
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_potential_alpha_xc`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`e_correlation_dft`
* :c:data:`e_exchange_dft`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`nuclear_repulsion`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
.. c:var:: one_e_energy
File : :file:`rs_ks_energy.irp.f`
.. code:: fortran
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_potential_alpha_xc`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`e_correlation_dft`
* :c:data:`e_exchange_dft`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`nuclear_repulsion`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
.. c:var:: rs_ks_energy
@ -361,113 +103,6 @@ Providers
* :c:data:`extra_e_contrib_density`
.. c:var:: trace_potential_xc
File : :file:`rs_ks_energy.irp.f`
.. code:: fortran
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_potential_alpha_xc`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`e_correlation_dft`
* :c:data:`e_exchange_dft`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`nuclear_repulsion`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
.. c:var:: two_e_energy
File : :file:`rs_ks_energy.irp.f`
.. code:: fortran
double precision :: rs_ks_energy
double precision :: two_e_energy
double precision :: one_e_energy
double precision :: fock_matrix_energy
double precision :: trace_potential_xc
Range-separated Kohn-Sham energy containing the nuclear repulsion energy, and the various components of this quantity.
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals`
* :c:data:`ao_potential_alpha_xc`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`e_correlation_dft`
* :c:data:`e_exchange_dft`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`nuclear_repulsion`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
Needed by:
.. hlist::
:columns: 3
* :c:data:`extra_e_contrib_density`
Subroutines / functions
-----------------------
.. c:function:: check_coherence_functional:
File : :file:`rs_ks_scf.irp.f`
.. code:: fortran
subroutine check_coherence_functional
Needs:
.. hlist::
:columns: 3
* :c:data:`correlation_functional`
* :c:data:`exchange_functional`
Called by:
.. hlist::
:columns: 3
* :c:func:`rs_ks_scf`

View File

@ -44,6 +44,16 @@ EZFIO parameters
Coefficient of the i-th |AO| on the j-th |MO|
.. option:: mo_coef_aux
AUX Coefficient of the i-th |AO| on the j-th |MO|
.. option:: mo_coef_imag
Imaginary part of the MO coefficient of the i-th |AO| on the j-th |MO|
.. option:: mo_label
Label characterizing the MOS (Local, Canonical, Natural, *etc*)
@ -54,6 +64,11 @@ EZFIO parameters
|MO| occupation numbers
.. option:: mo_symmetry
MOs with the same integer belong to the same irrep.
.. option:: mo_class
[ Core | Inactive | Active | Virtual | Deleted ], as defined by :ref:`qp_set_mo_class`
@ -88,20 +103,19 @@ Providers
* :c:data:`ezfio_filename`
* :c:data:`mo_num`
* :c:data:`mpi_master`
* :c:data:`output_wall_time_0`
Needed by:
.. hlist::
:columns: 3
* :c:data:`full_ijkl_bitmask`
* :c:data:`list_act`
* :c:data:`list_all_but_del_orb`
* :c:data:`list_core`
* :c:data:`list_del`
* :c:data:`list_inact`
* :c:data:`list_virt`
* :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_all_but_del_orb`
@ -143,27 +157,65 @@ Providers
.. hlist::
:columns: 3
* :c:data:`attachment_orbitals`
* :c:data:`cholesky_mo_transp`
* :c:data:`d0tu_alpha_ao`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo_alpha`
* :c:data:`fock_matrix_mo_beta`
* :c:data:`fps_spf_matrix_mo`
* :c:data:`mcscf_fock_alpha_mo`
* :c:data:`mo_coef_in_ao_ortho_basis`
* :c:data:`mo_coef_novirt`
* :c:data:`mo_coef_transp`
* :c:data:`mo_deriv_1_x`
* :c:data:`mo_dipole_x`
* :c:data:`mo_integrals_n_e`
* :c:data:`mo_integrals_n_e_per_atom`
* :c:data:`mo_kinetic_integrals`
* :c:data:`mo_overlap`
* :c:data:`mo_pseudo_integrals`
* :c:data:`mo_pseudo_integrals_local`
* :c:data:`mo_pseudo_integrals_non_local`
* :c:data:`mo_spread_x`
* :c:data:`mo_two_e_integral_jj_from_ao`
* :c:data:`mo_two_e_int_erf_jj_from_ao`
* :c:data:`mo_two_e_integrals_erf_in_map`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`natorbsfci`
* :c:data:`one_e_dm_alpha_ao_for_dft`
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
* :c:data:`one_e_dm_ao_alpha`
* :c:data:`one_e_dm_ao_alpha_nstates`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
* :c:data:`one_e_spin_density_ao`
* :c:data:`psi_det`
* :c:data:`s_mo_coef`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
.. c:var:: mo_coef_aux
File : :file:`mo_basis/mos_aux.irp.f`
.. code:: fortran
double precision, allocatable :: mo_coef_aux (ao_num,mo_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_ortho_canonical_coef`
* :c:data:`ezfio_filename`
* :c:data:`mo_num`
* :c:data:`mpi_master`
.. c:var:: mo_coef_imag
@ -246,9 +298,10 @@ Providers
.. hlist::
:columns: 3
* :c:data:`mo_two_e_integral_jj_from_ao`
* :c:data:`cholesky_semi_mo_transp_simple`
* :c:data:`mo_two_e_int_erf_jj_from_ao`
* :c:data:`mo_two_e_integrals_erf_in_map`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
.. c:var:: mo_label
@ -311,14 +364,44 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_one_e_integrals_from_mo`
* :c:data:`ao_ortho_canonical_nucl_elec_integrals`
* :c:data:`ao_ortho_lowdin_nucl_elec_integrals`
* :c:data:`attachment_numbers_sorted`
* :c:data:`attachment_orbitals`
* :c:data:`banned_excitation`
* :c:data:`bielec_pqxx_array`
* :c:data:`bielec_pqxx_no_array`
* :c:data:`bielec_pxxq_array`
* :c:data:`bielec_pxxq_no_array`
* :c:data:`bielecci`
* :c:data:`bielecci_no`
* :c:data:`big_array_coulomb_integrals`
* :c:data:`cholesky_mo`
* :c:data:`cholesky_mo_transp`
* :c:data:`cholesky_no_1_idx_transp`
* :c:data:`cholesky_no_total_transp`
* :c:data:`cholesky_semi_mo_transp_simple`
* :c:data:`core_fock_operator`
* :c:data:`core_fock_operator_erf`
* :c:data:`d0tu_alpha_ao`
* :c:data:`data_one_e_dm_alpha_mo`
* :c:data:`data_one_e_dm_beta_mo`
* :c:data:`difference_dm`
* :c:data:`difference_dm_eigvect`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fapq`
* :c:data:`fipq`
* :c:data:`fock_matrix_ao`
* :c:data:`fock_matrix_mo`
* :c:data:`fock_matrix_mo_alpha`
* :c:data:`fock_matrix_mo_beta`
* :c:data:`fock_operator_closed_shell_ref_bitmask`
* :c:data:`fock_wee_closed_shell`
* :c:data:`fps_spf_matrix_mo`
* :c:data:`full_ijkl_bitmask`
* :c:data:`h_core_ri`
* :c:data:`int_erf_3_index`
* :c:data:`list_act`
* :c:data:`list_all_but_del_orb`
* :c:data:`list_core`
@ -328,14 +411,21 @@ Providers
* :c:data:`list_inact`
* :c:data:`list_inact_act`
* :c:data:`list_virt`
* :c:data:`lowest_super_ci_coef_mo`
* :c:data:`mcscf_fock_alpha_mo`
* :c:data:`mcscf_fock_mo`
* :c:data:`mo_class`
* :c:data:`mo_coef`
* :c:data:`mo_coef_aux`
* :c:data:`mo_coef_begin_iteration`
* :c:data:`mo_coef_imag`
* :c:data:`mo_coef_in_ao_ortho_basis`
* :c:data:`mo_coef_transp`
* :c:data:`mo_deriv_1_x`
* :c:data:`mo_dipole_x`
* :c:data:`mo_integrals_cache_min`
* :c:data:`mo_integrals_erf_cache_min`
* :c:data:`mo_integrals_erf_map`
* :c:data:`mo_integrals_map`
* :c:data:`mo_integrals_n_e`
* :c:data:`mo_integrals_n_e_per_atom`
@ -344,22 +434,34 @@ Providers
* :c:data:`mo_one_e_integrals`
* :c:data:`mo_overlap`
* :c:data:`mo_pseudo_integrals`
* :c:data:`mo_pseudo_integrals_local`
* :c:data:`mo_pseudo_integrals_non_local`
* :c:data:`mo_spread_centered_x`
* :c:data:`mo_spread_x`
* :c:data:`mo_two_e_integral_jj_from_ao`
* :c:data:`mo_two_e_int_erf_jj`
* :c:data:`mo_two_e_int_erf_jj_from_ao`
* :c:data:`mo_two_e_integrals_erf_in_map`
* :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:`multi_s_deriv_1`
* :c:data:`multi_s_dipole_moment`
* :c:data:`n_act_orb`
* :c:data:`n_all_but_del_orb`
* :c:data:`n_attachment`
* :c:data:`n_core_orb`
* :c:data:`n_del_orb`
* :c:data:`n_inact_orb`
* :c:data:`n_int`
* :c:data:`n_virt_orb`
* :c:data:`natorbsci_mos`
* :c:data:`natorbsfci`
* :c:data:`neworbs`
* :c:data:`occnum`
* :c:data:`one_body_dm_mo_alpha_one_det`
* :c:data:`one_e_dm_alpha_ao_for_dft`
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
* :c:data:`one_e_dm_ao_alpha`
* :c:data:`one_e_dm_ao_alpha_nstates`
* :c:data:`one_e_dm_average_alpha_mo_for_dft`
* :c:data:`one_e_dm_average_beta_mo_for_dft`
* :c:data:`one_e_dm_average_mo_for_dft`
@ -376,10 +478,19 @@ Providers
* :c:data:`one_e_dm_mo_spin_index`
* :c:data:`one_e_spin_density_ao`
* :c:data:`one_e_spin_density_mo`
* :c:data:`one_e_tr_dm_mo`
* :c:data:`one_e_tr_dm_mo_alpha`
* :c:data:`one_ints_no`
* :c:data:`ormas_n_orb`
* :c:data:`psi_energy_h_core`
* :c:data:`s_mo_coef`
* :c:data:`singles_alpha_csc_idx`
* :c:data:`singles_beta_csc_idx`
* :c:data:`super_ci_dm`
* :c:data:`superci_natorb`
* :c:data:`switch_mo_coef`
* :c:data:`two_e_dm_mo`
* :c:data:`umat`
* :c:data:`v_ne_psi_energy`
* :c:data:`z_dipole_moment`
.. c:var:: mo_occ
@ -469,12 +580,18 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:func:`four_idx_novvvv`
* :c:data:`fock_matrix_mo_alpha`
* :c:data:`fock_matrix_mo_beta`
* :c:data:`fps_spf_matrix_mo`
* :c:data:`mcscf_fock_alpha_mo`
* :c:data:`mo_deriv_1_x`
* :c:data:`mo_dipole_x`
* :c:data:`mo_integrals_n_e`
* :c:data:`mo_integrals_n_e_per_atom`
* :c:data:`mo_kinetic_integrals`
* :c:data:`mo_pseudo_integrals`
* :c:data:`mo_pseudo_integrals_local`
* :c:data:`mo_pseudo_integrals_non_local`
* :c:data:`mo_spread_x`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
@ -554,6 +671,7 @@ Subroutines / functions
subroutine give_all_mos_at_r(r,mos_array)
mos_array(i) = ith MO function evaluated at "r"
Needs:
@ -622,6 +740,16 @@ Subroutines / functions
* :c:data:`mo_label`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`create_guess`
* :c:func:`damping_scf`
* :c:func:`hcore_guess`
* :c:func:`roothaan_hall_scf`
Calls:
.. hlist::
@ -689,7 +817,9 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:func:`set_natorb_no_ov_rot`
* :c:func:`set_natural_mos`
* :c:func:`set_natural_mos_canon_label`
Calls:
@ -751,7 +881,6 @@ Subroutines / functions
* :c:data:`ao_md5`
* :c:data:`ao_num`
* :c:data:`ezfio_filename`
* :c:data:`mo_class`
* :c:data:`mo_coef`
* :c:data:`mo_label`
@ -763,7 +892,14 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:func:`damping_scf`
* :c:func:`hcore_guess`
* :c:func:`huckel_guess`
* :c:func:`roothaan_hall_scf`
* :c:func:`run_orb_opt_trust_v2`
* :c:func:`save_natural_mos`
* :c:func:`save_natural_mos_canon_label`
* :c:func:`save_natural_mos_no_ov_rot`
Calls:
@ -776,7 +912,6 @@ Subroutines / functions
* :c:func:`ezfio_set_mo_basis_mo_label`
* :c:func:`ezfio_set_mo_basis_mo_num`
* :c:func:`ezfio_set_mo_basis_mo_occ`
* :c:func:`system`
.. c:function:: save_mos_no_occ:
@ -796,7 +931,6 @@ Subroutines / functions
:columns: 3
* :c:data:`ao_num`
* :c:data:`ezfio_filename`
* :c:data:`mo_coef`
* :c:data:`mo_num`
@ -806,7 +940,6 @@ Subroutines / functions
:columns: 3
* :c:func:`ezfio_set_mo_basis_mo_coef`
* :c:func:`system`
.. c:function:: save_mos_truncated:
@ -827,7 +960,6 @@ Subroutines / functions
* :c:data:`ao_md5`
* :c:data:`ao_num`
* :c:data:`ezfio_filename`
* :c:data:`mo_class`
* :c:data:`mo_coef`
* :c:data:`mo_label`
@ -844,5 +976,4 @@ Subroutines / functions
* :c:func:`ezfio_set_mo_basis_mo_label`
* :c:func:`ezfio_set_mo_basis_mo_num`
* :c:func:`ezfio_set_mo_basis_mo_occ`
* :c:func:`system`

View File

@ -60,6 +60,7 @@ Providers
* :c:data:`ao_num`
* :c:data:`ao_overlap`
* :c:data:`lin_dep_cutoff`
Needed by:
@ -138,9 +139,11 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`mo_label`
* :c:data:`mo_one_e_integrals`
* :c:data:`ao_num`
* :c:data:`mo_coef`
* :c:data:`mo_label`
* :c:data:`mo_num`
* :c:data:`mo_one_e_integrals`
Calls:
@ -148,6 +151,7 @@ Subroutines / functions
:columns: 3
* :c:func:`mo_as_eigvectors_of_mo_matrix`
* :c:func:`nullify_small_elements`
* :c:func:`save_mos`
Touches:

View File

@ -23,12 +23,12 @@ Note that you can find other interesting integrals related to the position opera
EZFIO parameters
----------------
.. option:: mo_integrals_e_n
.. option:: mo_integrals_n_e
Nucleus-electron integrals in |MO| basis set
.. option:: io_mo_integrals_e_n
.. option:: io_mo_integrals_n_e
Read/Write |MO| electron-nucleus attraction integrals from/to disk [ Write | Read | None ]
@ -71,6 +71,32 @@ EZFIO parameters
Providers
---------
.. c:var:: ao_one_e_integrals_from_mo
File : :file:`mo_one_e_ints/ao_to_mo.irp.f`
.. code:: fortran
double precision, allocatable :: ao_one_e_integrals_from_mo (ao_num,ao_num)
Integrals of the one e hamiltonian obtained from the integrals on the MO basis
WARNING : this is equal to ao_one_e_integrals only if the AO and MO basis have the same number of functions
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_num`
* :c:data:`mo_one_e_integrals`
* :c:data:`s_mo_coef`
.. c:var:: mo_dipole_x
@ -97,6 +123,14 @@ Providers
* :c:data:`mo_coef`
* :c:data:`mo_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mo_spread_centered_x`
* :c:data:`multi_s_dipole_moment`
* :c:data:`z_dipole_moment`
.. c:var:: mo_dipole_y
@ -125,6 +159,14 @@ Providers
* :c:data:`mo_coef`
* :c:data:`mo_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mo_spread_centered_x`
* :c:data:`multi_s_dipole_moment`
* :c:data:`z_dipole_moment`
.. c:var:: mo_dipole_z
@ -153,6 +195,14 @@ Providers
* :c:data:`mo_coef`
* :c:data:`mo_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mo_spread_centered_x`
* :c:data:`multi_s_dipole_moment`
* :c:data:`z_dipole_moment`
.. c:var:: mo_integrals_n_e
@ -185,6 +235,7 @@ Providers
* :c:data:`mo_one_e_integrals`
* :c:data:`ref_bitmask_energy`
* :c:data:`v_ne_psi_energy`
.. c:var:: mo_integrals_n_e_per_atom
@ -274,8 +325,12 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_one_e_integrals_from_mo`
* :c:data:`core_energy`
* :c:data:`etwo`
* :c:data:`fock_operator_closed_shell_ref_bitmask`
* :c:data:`h_core_ri`
* :c:data:`one_ints_no`
* :c:data:`psi_energy_h_core`
* :c:data:`ref_bitmask_energy`
@ -330,6 +385,137 @@ Providers
.. c:var:: mo_pseudo_integrals_local
File : :file:`mo_one_e_ints/pot_mo_pseudo_ints.irp.f`
.. code:: fortran
double precision, allocatable :: mo_pseudo_integrals_local (mo_num,mo_num)
Pseudopotential integrals in |MO| basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_pseudo_integrals_local`
* :c:data:`do_pseudo`
* :c:data:`mo_coef`
* :c:data:`mo_num`
.. c:var:: mo_pseudo_integrals_non_local
File : :file:`mo_one_e_ints/pot_mo_pseudo_ints.irp.f`
.. code:: fortran
double precision, allocatable :: mo_pseudo_integrals_non_local (mo_num,mo_num)
Pseudopotential integrals in |MO| basis
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_pseudo_integrals_non_local`
* :c:data:`do_pseudo`
* :c:data:`mo_coef`
* :c:data:`mo_num`
.. c:var:: mo_spread_centered_x
File : :file:`mo_one_e_ints/spread_dipole_mo.irp.f`
.. code:: fortran
double precision, allocatable :: mo_spread_centered_x (mo_num,mo_num)
double precision, allocatable :: mo_spread_centered_y (mo_num,mo_num)
double precision, allocatable :: mo_spread_centered_z (mo_num,mo_num)
array of the integrals of MO_i * (x^2 - <MO_i|x|MO_j>^2) MO_j = MO_i x^2 MO_j - (MO_i x MO_j)^2
array of the integrals of MO_i * (y^2 - <MO_i|y|MO_j>^2) MO_j = MO_i y^2 MO_j - (MO_i y MO_j)^2
array of the integrals of MO_i * (z^2 - <MO_i|z|MO_j>^2) MO_j = MO_i z^2 MO_j - (MO_i z MO_j)^2
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_dipole_x`
* :c:data:`mo_num`
* :c:data:`mo_spread_x`
.. c:var:: mo_spread_centered_y
File : :file:`mo_one_e_ints/spread_dipole_mo.irp.f`
.. code:: fortran
double precision, allocatable :: mo_spread_centered_x (mo_num,mo_num)
double precision, allocatable :: mo_spread_centered_y (mo_num,mo_num)
double precision, allocatable :: mo_spread_centered_z (mo_num,mo_num)
array of the integrals of MO_i * (x^2 - <MO_i|x|MO_j>^2) MO_j = MO_i x^2 MO_j - (MO_i x MO_j)^2
array of the integrals of MO_i * (y^2 - <MO_i|y|MO_j>^2) MO_j = MO_i y^2 MO_j - (MO_i y MO_j)^2
array of the integrals of MO_i * (z^2 - <MO_i|z|MO_j>^2) MO_j = MO_i z^2 MO_j - (MO_i z MO_j)^2
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_dipole_x`
* :c:data:`mo_num`
* :c:data:`mo_spread_x`
.. c:var:: mo_spread_centered_z
File : :file:`mo_one_e_ints/spread_dipole_mo.irp.f`
.. code:: fortran
double precision, allocatable :: mo_spread_centered_x (mo_num,mo_num)
double precision, allocatable :: mo_spread_centered_y (mo_num,mo_num)
double precision, allocatable :: mo_spread_centered_z (mo_num,mo_num)
array of the integrals of MO_i * (x^2 - <MO_i|x|MO_j>^2) MO_j = MO_i x^2 MO_j - (MO_i x MO_j)^2
array of the integrals of MO_i * (y^2 - <MO_i|y|MO_j>^2) MO_j = MO_i y^2 MO_j - (MO_i y MO_j)^2
array of the integrals of MO_i * (z^2 - <MO_i|z|MO_j>^2) MO_j = MO_i z^2 MO_j - (MO_i z MO_j)^2
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_dipole_x`
* :c:data:`mo_num`
* :c:data:`mo_spread_x`
.. c:var:: mo_spread_x
@ -356,6 +542,12 @@ Providers
* :c:data:`mo_coef`
* :c:data:`mo_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mo_spread_centered_x`
.. c:var:: mo_spread_y
@ -384,6 +576,12 @@ Providers
* :c:data:`mo_coef`
* :c:data:`mo_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mo_spread_centered_x`
.. c:var:: mo_spread_z
@ -412,6 +610,12 @@ Providers
* :c:data:`mo_coef`
* :c:data:`mo_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mo_spread_centered_x`
.. c:var:: s_mo_coef
@ -436,6 +640,13 @@ Providers
* :c:data:`mo_coef`
* :c:data:`mo_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_one_e_integrals_from_mo`
* :c:data:`fock_matrix_ao`
@ -465,6 +676,14 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`s_mo_coef`
Called by:
.. hlist::
:columns: 3
* :c:data:`ao_one_e_integrals_from_mo`
* :c:data:`fock_matrix_ao`
Calls:
.. hlist::
@ -499,6 +718,7 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`d0tu_alpha_ao`
* :c:data:`one_e_dm_alpha_ao_for_dft`
* :c:data:`one_e_dm_alpha_ao_for_dft_no_core`
@ -537,16 +757,19 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:func:`huckel_guess`
* :c:func:`roothaan_hall_scf`
* :c:func:`save_natural_mos`
* :c:func:`save_natural_mos_canon_label`
* :c:func:`save_natural_mos_no_ov_rot`
* :c:func:`scf`
Calls:
.. hlist::
:columns: 3
* :c:func:`nullify_small_elements`
* :c:func:`ortho_lowdin`
* :c:func:`restore_symmetry`
Touches:

File diff suppressed because it is too large Load Diff

View File

@ -59,19 +59,39 @@ Providers
.. hlist::
:columns: 3
* :c:data:`absolute_eig`
* :c:data:`act_mos_opt`
* :c:data:`adaptive_pt2_max`
* :c:data:`ao_cartesian`
* :c:data:`ao_cholesky_threshold`
* :c:data:`ao_coef`
* :c:data:`ao_expo`
* :c:data:`ao_expo_im`
* :c:data:`ao_expo_phase`
* :c:data:`ao_expo_pw`
* :c:data:`ao_integrals_threshold`
* :c:data:`ao_md5`
* :c:data:`ao_normalized`
* :c:data:`ao_nucl`
* :c:data:`ao_num`
* :c:data:`ao_one_e_integrals_threshold`
* :c:data:`ao_ortho_canonical_coef`
* :c:data:`ao_power`
* :c:data:`ao_prim_num`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`cas_bitmask`
* :c:data:`avoid_saddle`
* :c:data:`basis`
* :c:data:`basis_nucleus_index`
* :c:data:`calc_dipole_moment`
* :c:data:`calc_energy_components`
* :c:data:`calc_osc_str`
* :c:data:`calc_tr_dipole_moment`
* :c:data:`ci_energy`
* :c:data:`correlation_energy_ratio_max`
* :c:data:`correlation_functional`
* :c:data:`criterion_casscf`
* :c:data:`csf_based`
* :c:data:`damping_for_rs_dft`
* :c:data:`data_energy_proj`
* :c:data:`data_energy_var`
* :c:data:`data_one_e_dm_alpha_ao`
@ -79,63 +99,90 @@ Providers
* :c:data:`data_one_e_dm_beta_ao`
* :c:data:`data_one_e_dm_beta_mo`
* :c:data:`davidson_sze_max`
* :c:data:`disk_access_nuclear_repulsion`
* :c:data:`density_for_dft`
* :c:data:`diag_hess_cas`
* :c:data:`disk_based_davidson`
* :c:data:`distributed_davidson`
* :c:data:`do_direct_integrals`
* :c:data:`do_ao_cholesky`
* :c:data:`do_mom`
* :c:data:`do_ormas`
* :c:data:`do_pseudo`
* :c:data:`do_pt2`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`element_name`
* :c:data:`energy_iterations`
* :c:data:`exchange_functional`
* :c:data:`excitation_alpha_max`
* :c:data:`excitation_beta_max`
* :c:data:`excitation_max`
* :c:data:`excitation_ref`
* :c:data:`fast_2rdm`
* :c:data:`frozen_orb_scf`
* :c:data:`generators_bitmask`
* :c:data:`generators_bitmask_restart`
* :c:data:`h0_type`
* :c:data:`io_ao_integrals_e_n`
* :c:data:`hess_cv_cv`
* :c:data:`hf_exchange`
* :c:data:`io_ao_cholesky`
* :c:data:`io_ao_integrals_kinetic`
* :c:data:`io_ao_integrals_n_e`
* :c:data:`io_ao_integrals_overlap`
* :c:data:`io_ao_integrals_pseudo`
* :c:data:`io_ao_one_e_integrals`
* :c:data:`io_ao_two_e_integrals`
* :c:data:`io_ao_two_e_integrals_erf`
* :c:data:`io_mo_integrals_e_n`
* :c:data:`io_mo_cholesky`
* :c:data:`io_mo_integrals_kinetic`
* :c:data:`io_mo_integrals_n_e`
* :c:data:`io_mo_integrals_pseudo`
* :c:data:`io_mo_one_e_integrals`
* :c:data:`io_mo_two_e_integrals`
* :c:data:`io_mo_two_e_integrals_erf`
* :c:data:`io_nuclear_repulsion`
* :c:data:`io_two_body_rdm_aa`
* :c:data:`io_two_body_rdm_ab`
* :c:data:`io_two_body_rdm_bb`
* :c:data:`io_two_body_rdm_spin_trace`
* :c:data:`is_periodic`
* :c:data:`level_shift`
* :c:data:`level_shift_casscf`
* :c:data:`lin_dep_cutoff`
* :c:data:`max_dim_diis`
* :c:data:`mo_class`
* :c:data:`mo_coef`
* :c:data:`mo_coef_aux`
* :c:data:`mo_coef_imag`
* :c:data:`mo_guess_type`
* :c:data:`mo_integrals_cache_shift`
* :c:data:`mo_integrals_threshold`
* :c:data:`mo_label`
* :c:data:`mo_num`
* :c:data:`mo_occ`
* :c:data:`mo_two_e_integrals_erf_in_map`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mu_dft_type`
* :c:data:`mu_erf`
* :c:data:`n_cas_bitmask`
* :c:data:`n_act_orb`
* :c:data:`n_big_act_orb`
* :c:data:`n_core_orb`
* :c:data:`n_del_orb`
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_det_iterations`
* :c:data:`n_det_max`
* :c:data:`n_det_max_full`
* :c:data:`n_det_max_opt`
* :c:data:`n_det_print_wf`
* :c:data:`n_det_selectors`
* :c:data:`n_generators_bitmask`
* :c:data:`n_generators_bitmask_restart`
* :c:data:`n_inact_orb`
* :c:data:`n_int`
* :c:data:`n_it_scf_max`
* :c:data:`n_iter`
* :c:data:`n_pts_charge`
* :c:data:`n_states`
* :c:data:`n_states_diag`
* :c:data:`no_ivvv_integrals`
* :c:data:`no_vvv_integrals`
* :c:data:`no_vvvv_integrals`
* :c:data:`n_virt_orb`
* :c:data:`nb_it_max_lambda`
* :c:data:`nb_it_max_pre_search`
* :c:data:`no_core_density`
* :c:data:`no_oa_or_av_opt`
* :c:data:`normalize_dm`
* :c:data:`nthreads_davidson`
* :c:data:`nthreads_pt2`
* :c:data:`nucl_charge`
@ -144,7 +191,22 @@ Providers
* :c:data:`nucl_label`
* :c:data:`nucl_num`
* :c:data:`nuclear_repulsion`
* :c:data:`nucleus_shell_num`
* :c:data:`only_expected_s2`
* :c:data:`optimization_max_nb_iter`
* :c:data:`optimization_method`
* :c:data:`ormas_max_e`
* :c:data:`ormas_min_e`
* :c:data:`ormas_mstart`
* :c:data:`ormas_n_space`
* :c:data:`point_charges`
* :c:data:`prim_coef`
* :c:data:`prim_expo`
* :c:data:`prim_normalization_factor`
* :c:data:`prim_num`
* :c:data:`primitives_normalized`
* :c:data:`print_all_transitions`
* :c:data:`pruning`
* :c:data:`pseudo_dz_k`
* :c:data:`pseudo_dz_kl`
* :c:data:`pseudo_grid_rmax`
@ -166,25 +228,59 @@ Providers
* :c:data:`psi_det_size`
* :c:data:`pt2_e0_denominator`
* :c:data:`pt2_f`
* :c:data:`pt2_iterations`
* :c:data:`pt2_max`
* :c:data:`pt2_min_casscf`
* :c:data:`pt2_min_parallel_tasks`
* :c:data:`pt2_n_teeth`
* :c:data:`pt2_relative_error`
* :c:data:`pts_charge_coord`
* :c:data:`pts_charge_z`
* :c:data:`qp_max_mem`
* :c:data:`read_wf`
* :c:data:`restore_symm`
* :c:data:`s2_eig`
* :c:data:`save_threshold`
* :c:data:`save_wf_after_selection`
* :c:data:`scf_algorithm`
* :c:data:`selection_factor`
* :c:data:`seniority_max`
* :c:data:`shell_ang_mom`
* :c:data:`shell_index`
* :c:data:`shell_normalization_factor`
* :c:data:`shell_num`
* :c:data:`shell_prim_num`
* :c:data:`small_active_space`
* :c:data:`state_following`
* :c:data:`state_following_casscf`
* :c:data:`target_energy`
* :c:data:`thresh_casscf`
* :c:data:`thresh_cc`
* :c:data:`thresh_delta`
* :c:data:`thresh_eig`
* :c:data:`thresh_model`
* :c:data:`thresh_model_2`
* :c:data:`thresh_opt_max_elem_grad`
* :c:data:`thresh_rho`
* :c:data:`thresh_rho_2`
* :c:data:`thresh_scf`
* :c:data:`thresh_sym`
* :c:data:`thresh_wtg`
* :c:data:`thresh_wtg2`
* :c:data:`threshold_davidson`
* :c:data:`threshold_davidson_from_pt2`
* :c:data:`threshold_diis`
* :c:data:`threshold_generators`
* :c:data:`threshold_nonsym_davidson`
* :c:data:`twice_hierarchy_max`
* :c:data:`typ`
* :c:data:`use_cgtos`
* :c:data:`use_only_lr`
* :c:data:`variance_max`
* :c:data:`version_avoid_saddle`
* :c:data:`version_lambda_search`
* :c:data:`weight_one_e_dm`
* :c:data:`weight_selection`
* :c:data:`without_diagonal`
.. c:var:: mpi_rank

View File

@ -49,6 +49,34 @@ EZFIO parameters
Nuclear repulsion (Computed automaticaly or Read in the |EZFIO|)
.. option:: is_periodic
If true, the calculation uses periodic boundary conditions
Default: false
.. option:: n_pts_charge
Number of point charges to be added to the potential
Default: 0
.. option:: pts_charge_z
Charge associated to each point charge
.. option:: pts_charge_coord
Coordinate of each point charge.
.. option:: point_charges
If |true|, point charges (see nuclei/write_pt_charges.py) are added to the one-electron potential
Default: False
Providers
---------
@ -216,6 +244,39 @@ Providers
.. c:var:: n_pts_charge
File : :file:`nuclei/point_charges.irp.f`
.. code:: fortran
integer :: n_pts_charge
Number of point charges to be added to the potential
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mpi_master`
* :c:data:`output_wall_time_0`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_integrals_pt_chrg`
* :c:data:`pt_chrg_interaction`
* :c:data:`pt_chrg_nuclei_interaction`
* :c:data:`pts_charge_coord`
* :c:data:`pts_charge_z`
.. c:var:: nucl_coord
@ -245,23 +306,37 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_2e_cgtos_schwartz`
* :c:data:`ao_coef_norm_cgtos`
* :c:data:`ao_deriv2_cgtos_x`
* :c:data:`ao_deriv2_x`
* :c:data:`ao_deriv_1_x`
* :c:data:`ao_dipole_x`
* :c:data:`ao_integrals_n_e`
* :c:data:`ao_integrals_n_e_cgtos`
* :c:data:`ao_integrals_n_e_per_atom`
* :c:data:`ao_integrals_pt_chrg`
* :c:data:`ao_overlap`
* :c:data:`ao_overlap_abs`
* :c:data:`ao_overlap_cgtos`
* :c:data:`ao_pseudo_integrals_local`
* :c:data:`ao_pseudo_integrals_non_local`
* :c:data:`ao_spread_x`
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`ao_two_e_integral_erf_schwartz`
* :c:data:`ao_two_e_integral_schwartz`
* :c:data:`ao_two_e_integrals_erf_in_map`
* :c:data:`ao_two_e_integrals_in_map`
* :c:data:`center_of_mass`
* :c:data:`cholesky_ao_num`
* :c:data:`inertia_tensor`
* :c:data:`multi_s_deriv_1`
* :c:data:`multi_s_dipole_moment`
* :c:data:`nucl_coord_transp`
* :c:data:`nucl_dist_2`
* :c:data:`nuclear_repulsion`
* :c:data:`pt_chrg_nuclei_interaction`
* :c:data:`z_dipole_moment`
.. c:var:: nucl_coord_transp
@ -501,6 +576,8 @@ Providers
* :c:data:`nucl_coord`
* :c:data:`nucl_num`
* :c:data:`output_wall_time_0`
* :c:data:`point_charges`
* :c:data:`pt_chrg_nuclei_interaction`
Needed by:
@ -508,8 +585,139 @@ Providers
:columns: 3
* :c:data:`ci_energy`
* :c:data:`ci_energy_no_diag`
* :c:data:`core_energy`
* :c:data:`core_energy_erf`
* :c:data:`etwo`
* :c:data:`hf_energy`
* :c:data:`psi_energy_with_nucl_rep`
* :c:data:`pt2_e0_denominator`
* :c:data:`scf_energy`
.. c:var:: pt_chrg_interaction
File : :file:`nuclei/point_charges.irp.f`
.. code:: fortran
double precision :: pt_chrg_interaction
Interaction between the point charges
Needs:
.. hlist::
:columns: 3
* :c:data:`n_pts_charge`
* :c:data:`pts_charge_coord`
* :c:data:`pts_charge_z`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pt_chrg_nuclei_interaction`
.. c:var:: pt_chrg_nuclei_interaction
File : :file:`nuclei/point_charges.irp.f`
.. code:: fortran
double precision :: pt_chrg_nuclei_interaction
repulsion between the point charges and the nuclei
Needs:
.. hlist::
:columns: 3
* :c:data:`n_pts_charge`
* :c:data:`nucl_charge`
* :c:data:`nucl_coord`
* :c:data:`nucl_num`
* :c:data:`point_charges`
* :c:data:`pt_chrg_interaction`
* :c:data:`pts_charge_coord`
* :c:data:`pts_charge_z`
Needed by:
.. hlist::
:columns: 3
* :c:data:`nuclear_repulsion`
.. c:var:: pts_charge_coord
File : :file:`nuclei/point_charges.irp.f`
.. code:: fortran
double precision, allocatable :: pts_charge_coord (n_pts_charge,3)
Coordinates of each point charge.
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mpi_master`
* :c:data:`n_pts_charge`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_integrals_pt_chrg`
* :c:data:`pt_chrg_interaction`
* :c:data:`pt_chrg_nuclei_interaction`
.. c:var:: pts_charge_z
File : :file:`nuclei/point_charges.irp.f`
.. code:: fortran
double precision, allocatable :: pts_charge_z (n_pts_charge)
Charge associated to each point charge.
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mpi_master`
* :c:data:`n_pts_charge`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ao_integrals_pt_chrg`
* :c:data:`pt_chrg_interaction`
* :c:data:`pt_chrg_nuclei_interaction`
.. c:var:: slater_bragg_radii

View File

@ -92,6 +92,12 @@ EZFIO parameters
Default: 0.0
.. option:: pt2_min_parallel_tasks
Minimum number of tasks in PT2 calculation
Default: 1
.. option:: pt2_relative_error
Stop stochastic |PT2| when the relative error is smaller than `pT2_relative_error`
@ -106,7 +112,7 @@ EZFIO parameters
.. option:: h0_type
Type of denominator in PT2. [EN | SOP | HF]
Type of denominator in PT2. [EN | CFG | HF]
Default: EN
@ -218,8 +224,6 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`h_apply_buffer_allocated`
* :c:data:`n_det`
* :c:data:`n_int`
@ -257,7 +261,6 @@ Subroutines / functions
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -293,7 +296,6 @@ Subroutines / functions
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -329,7 +331,6 @@ Subroutines / functions
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -365,7 +366,6 @@ Subroutines / functions
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -401,7 +401,6 @@ Subroutines / functions
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -437,7 +436,6 @@ Subroutines / functions
* :c:data:`n_det`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -472,7 +470,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -509,7 +506,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -546,7 +542,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -583,7 +578,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -620,7 +614,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -657,7 +650,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_det_generators`
* :c:data:`psi_selectors`
@ -737,7 +729,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_selectors`
* :c:data:`psi_selectors_size`
* :c:data:`selection_criterion`
@ -783,7 +774,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_selectors`
* :c:data:`psi_selectors_size`
@ -829,7 +819,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_energy`
* :c:data:`psi_selectors`
* :c:data:`psi_selectors_size`
@ -876,7 +865,6 @@ Subroutines / functions
* :c:data:`fock_matrix_mo`
* :c:data:`mo_num`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_selectors`
* :c:data:`psi_selectors_size`
* :c:data:`ref_bitmask`
@ -922,7 +910,6 @@ Subroutines / functions
* :c:data:`mo_num`
* :c:data:`n_det_selectors`
* :c:data:`n_int`
* :c:data:`psi_selectors`
* :c:data:`psi_selectors_size`
* :c:data:`selection_criterion`

View File

@ -27,7 +27,7 @@ EZFIO parameters
.. option:: pseudo_n_k
Number of gaussians in the local component
Powers of r - 2 in the local component
.. option:: pseudo_v_k
@ -52,7 +52,7 @@ EZFIO parameters
.. option:: pseudo_n_kl
Number of functions in the non-local component
Powers of r - 2 in the non-local component
.. option:: pseudo_v_kl

View File

@ -97,16 +97,58 @@ EZFIO parameters
Calculated HF energy
.. option:: do_mom
If true, this will run a MOM calculation. The overlap will be computed at each step with respect to the initial MOs. After an initial Hartree-Fock calculation, the guess can be created by swapping molecular orbitals through the qp run swap_mos command.
Default: False
.. option:: frozen_orb_scf
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
.. option:: no_oa_or_av_opt
If true, you set to zero all Fock elements between the orbital set to active and all the other orbitals
Default: False
Providers
---------
.. c:var:: all_shells_closed
File : :file:`scf_utils/scf_density_matrix_ao.irp.f`
.. code:: fortran
logical :: all_shells_closed
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao`
* :c:data:`fock_matrix_mo`
* :c:data:`scf_density_matrix_ao`
.. c:var:: eigenvalues_fock_matrix_ao
@ -180,10 +222,15 @@ Providers
* :c:data:`level_shift`
* :c:data:`list_act`
* :c:data:`list_core`
* :c:data:`list_inact`
* :c:data:`list_virt`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`n_act_orb`
* :c:data:`n_core_orb`
* :c:data:`n_inact_orb`
* :c:data:`n_virt_orb`
* :c:data:`no_oa_or_av_opt`
@ -224,7 +271,6 @@ Providers
:columns: 3
* :c:func:`dgecon`
* :c:func:`dgemm`
* :c:func:`dgesv`
* :c:func:`dgetrf`
@ -246,9 +292,8 @@ Providers
.. hlist::
:columns: 3
* :c:data:`all_shells_closed`
* :c:data:`ao_num`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`fock_matrix_mo`
* :c:data:`frozen_orb_scf`
@ -279,16 +324,27 @@ Providers
Fock matrix on the MO basis.
For open shells, the ROHF Fock Matrix is ::
| F-K | F + K/2 | F |
|---------------------------------|
| F + K/2 | F | F - K/2 |
|---------------------------------|
| F | F - K/2 | F + K |
| Rcc | F^b | Fcv |
|-----------------------|
| F^b | Roo | F^a |
|-----------------------|
| Fcv | F^a | Rvv |
C: Core, O: Open, V: Virtual
F = 1/2 (Fa + Fb)
Rcc = Acc Fcc^a + Bcc Fcc^b
Roo = Aoo Foo^a + Boo Foo^b
Rvv = Avv Fvv^a + Bvv Fvv^b
Fcv = (F^a + F^b)/2
K = Fb - Fa
F^a: Fock matrix alpha (MO), F^b: Fock matrix beta (MO)
A,B: Coupling parameters
J. Chem. Phys. 133, 141102 (2010), https://doi.org/10.1063/1.3503173
Coupling parameters from J. Chem. Phys. 125, 204110 (2006); https://doi.org/10.1063/1.2393223.
cc oo vv
A -0.5 0.5 1.5
B 1.5 0.5 -0.5
Needs:
@ -296,6 +352,7 @@ Providers
.. hlist::
:columns: 3
* :c:data:`all_shells_closed`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`fock_matrix_mo_alpha`
@ -303,9 +360,14 @@ Providers
* :c:data:`frozen_orb_scf`
* :c:data:`list_act`
* :c:data:`list_core`
* :c:data:`list_inact`
* :c:data:`list_virt`
* :c:data:`mo_num`
* :c:data:`n_act_orb`
* :c:data:`n_core_orb`
* :c:data:`n_inact_orb`
* :c:data:`n_virt_orb`
* :c:data:`no_oa_or_av_opt`
Needed by:
@ -330,16 +392,27 @@ Providers
Fock matrix on the MO basis.
For open shells, the ROHF Fock Matrix is ::
| F-K | F + K/2 | F |
|---------------------------------|
| F + K/2 | F | F - K/2 |
|---------------------------------|
| F | F - K/2 | F + K |
| Rcc | F^b | Fcv |
|-----------------------|
| F^b | Roo | F^a |
|-----------------------|
| Fcv | F^a | Rvv |
C: Core, O: Open, V: Virtual
F = 1/2 (Fa + Fb)
Rcc = Acc Fcc^a + Bcc Fcc^b
Roo = Aoo Foo^a + Boo Foo^b
Rvv = Avv Fvv^a + Bvv Fvv^b
Fcv = (F^a + F^b)/2
K = Fb - Fa
F^a: Fock matrix alpha (MO), F^b: Fock matrix beta (MO)
A,B: Coupling parameters
J. Chem. Phys. 133, 141102 (2010), https://doi.org/10.1063/1.3503173
Coupling parameters from J. Chem. Phys. 125, 204110 (2006); https://doi.org/10.1063/1.2393223.
cc oo vv
A -0.5 0.5 1.5
B 1.5 0.5 -0.5
Needs:
@ -347,6 +420,7 @@ Providers
.. hlist::
:columns: 3
* :c:data:`all_shells_closed`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`fock_matrix_mo_alpha`
@ -354,9 +428,14 @@ Providers
* :c:data:`frozen_orb_scf`
* :c:data:`list_act`
* :c:data:`list_core`
* :c:data:`list_inact`
* :c:data:`list_virt`
* :c:data:`mo_num`
* :c:data:`n_act_orb`
* :c:data:`n_core_orb`
* :c:data:`n_inact_orb`
* :c:data:`n_virt_orb`
* :c:data:`no_oa_or_av_opt`
Needed by:
@ -498,9 +577,8 @@ Providers
.. hlist::
:columns: 3
* :c:data:`all_shells_closed`
* :c:data:`ao_num`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`scf_density_matrix_ao_alpha`
* :c:data:`scf_density_matrix_ao_beta`
@ -509,6 +587,7 @@ Providers
.. hlist::
:columns: 3
* :c:data:`ao_two_e_integral_alpha_chol`
* :c:data:`fps_spf_matrix_ao`
@ -539,7 +618,10 @@ Providers
:columns: 3
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`ao_two_e_integral_alpha_chol`
* :c:data:`hf_energy`
* :c:data:`hf_kinetic_energy`
* :c:data:`mcscf_fock_alpha_ao`
* :c:data:`scf_density_matrix_ao`
* :c:data:`scf_energy`
@ -571,7 +653,10 @@ Providers
:columns: 3
* :c:data:`ao_two_e_integral_alpha`
* :c:data:`ao_two_e_integral_alpha_chol`
* :c:data:`hf_energy`
* :c:data:`hf_kinetic_energy`
* :c:data:`mcscf_fock_alpha_ao`
* :c:data:`scf_density_matrix_ao`
* :c:data:`scf_energy`
@ -734,6 +819,47 @@ Subroutines / functions
* :c:data:`mo_coef`
.. c:function:: reorder_mo_max_overlap:
File : :file:`scf_utils/reorder_mo_max_overlap.irp.f`
.. code:: fortran
subroutine reorder_mo_max_overlap
routines that compute the projection of each MO of the current `mo_coef` on the space spanned by the occupied orbitals of `mo_coef_begin_iteration`
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`ao_overlap`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_coef`
* :c:data:`mo_coef_begin_iteration`
* :c:data:`mo_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`roothaan_hall_scf`
Calls:
.. hlist::
:columns: 3
* :c:func:`dgemm`
* :c:func:`dsort`
.. c:function:: roothaan_hall_scf:
@ -753,6 +879,7 @@ Subroutines / functions
* :c:data:`ao_md5`
* :c:data:`ao_num`
* :c:data:`do_mom`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_ao`
* :c:data:`fock_matrix_ao_alpha`
@ -761,6 +888,8 @@ Subroutines / functions
* :c:data:`fps_spf_matrix_ao`
* :c:data:`fps_spf_matrix_mo`
* :c:data:`frozen_orb_scf`
* :c:data:`json_int_fmt`
* :c:data:`json_unit`
* :c:data:`level_shift`
* :c:data:`max_dim_diis`
* :c:data:`mo_coef`
@ -773,18 +902,31 @@ Subroutines / functions
* :c:data:`thresh_scf`
* :c:data:`threshold_diis_nonzero`
Called by:
.. hlist::
:columns: 3
* :c:func:`run`
Calls:
.. hlist::
:columns: 3
* :c:func:`dgemm`
* :c:func:`extrapolate_fock_matrix`
* :c:func:`initialize_mo_coef_begin_iteration`
* :c:func:`lock_io`
* :c:func:`mo_as_eigvectors_of_mo_matrix`
* :c:func:`nullify_small_elements`
* :c:func:`orthonormalize_mos`
* :c:func:`pivoted_cholesky`
* :c:func:`reorder_core_orb`
* :c:func:`reorder_mo_max_overlap`
* :c:func:`restore_symmetry`
* :c:func:`save_mos`
* :c:func:`sleep`
* :c:func:`unlock_io`
* :c:func:`write_double`
* :c:func:`write_time`

View File

@ -579,9 +579,9 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_det_generators`
* :c:data:`zmq_state`
* :c:data:`mpi_master`
.. c:function:: zmq_get_n_det_selectors:
@ -601,9 +601,9 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_det_selectors`
* :c:data:`zmq_state`
* :c:data:`mpi_master`
.. c:function:: zmq_put_n_det_generators:

View File

@ -15,160 +15,158 @@ Useful tools are grouped in this module.
Programs
--------
* :ref:`attachement_orb`
* :ref:`cas_complete`
* :ref:`diagonalize_h`
* :ref:`fcidump`
* :ref:`fcidump_pyscf`
* :ref:`four_idx_transform`
* :ref:`guess_hcore`
* :ref:`guess_huckel`
* :ref:`molden`
* :ref:`print_ci_vectors`
* :ref:`print_e_conv`
* :ref:`print_detweights`
* :ref:`print_dipole`
* :ref:`print_energy`
* :ref:`print_hamiltonian`
* :ref:`print_sorted_wf_coef`
* :ref:`print_var_energy`
* :ref:`print_wf`
* :ref:`rotate_mos`
* :ref:`save_natorb`
* :ref:`save_natorb_no_ov_rot`
* :ref:`save_natorb_no_ref`
* :ref:`save_one_e_dm`
* :ref:`save_ortho_mos`
* :ref:`sort_by_fock_energies`
* :ref:`sort_wf`
* :ref:`swap_mos`
* :ref:`truncate_wf`
* :ref:`write_integrals_erf`
Subroutines / functions
-----------------------
.. c:function:: print_energy:
.. c:function:: molden_attachment:
File : :file:`print_energy.irp.f`
File : :file:`attachement_orb.irp.f`
.. code:: fortran
subroutine print_energy
subroutine molden_attachment
Prints the energy of the wave function stored in the |EZFIO| directory.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_states`
* :c:data:`read_wf`
Calls:
.. hlist::
:columns: 3
* :c:func:`run`
Touches:
.. hlist::
:columns: 3
* :c:data:`read_wf`
.. c:function:: print_hamiltonian:
File : :file:`print_hamiltonian.irp.f`
.. code:: fortran
subroutine print_hamiltonian
Prints the Hamiltonian matrix defined in the space of determinants
present in the |EZFIO| directory.
Needs:
.. hlist::
:columns: 3
* :c:data:`read_wf`
Calls:
.. hlist::
:columns: 3
* :c:func:`run`
Touches:
.. hlist::
:columns: 3
* :c:data:`read_wf`
.. c:function:: routine:
File : :file:`write_integrals_erf.irp.f`
.. code:: fortran
subroutine routine
Called by:
.. hlist::
:columns: 3
* :c:func:`diagonalize_h`
* :c:func:`print_ci_vectors`
* :c:func:`print_wf`
* :c:func:`write_integrals_erf`
Calls:
.. hlist::
:columns: 3
* :c:func:`save_erf_two_e_integrals_ao`
* :c:func:`save_erf_two_e_integrals_mo`
.. c:function:: routine_e_conv:
File : :file:`print_e_conv.irp.f`
.. code:: fortran
subroutine routine_e_conv
routine called by :c:func:`print_e_conv`
Produces a Molden file
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_coef`
* :c:data:`ao_expo`
* :c:data:`ao_l`
* :c:data:`ao_num`
* :c:data:`ao_power`
* :c:data:`ao_prim_num`
* :c:data:`attachment_numbers_sorted`
* :c:data:`attachment_orbitals`
* :c:data:`element_name`
* :c:data:`ezfio_filename`
* :c:data:`n_states`
* :c:data:`n_attachment`
* :c:data:`nucl_charge`
* :c:data:`nucl_coord`
* :c:data:`nucl_list_shell_aos`
* :c:data:`nucl_num`
Called by:
.. hlist::
:columns: 3
* :c:func:`print_e_conv`
* :c:func:`attachement_orb`
Calls:
.. hlist::
:columns: 3
* :c:func:`ezfio_get_iterations_energy_iterations`
* :c:func:`ezfio_get_iterations_n_det_iterations`
* :c:func:`ezfio_get_iterations_n_iter`
* :c:func:`ezfio_get_iterations_pt2_iterations`
* :c:func:`isort`
.. c:function:: print_exc:
File : :file:`print_detweights.irp.f`
.. code:: fortran
subroutine print_exc()
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det`
Called by:
.. hlist::
:columns: 3
* :c:func:`print_detweights`
Calls:
.. hlist::
:columns: 3
* :c:func:`get_excitation_degree`
.. c:function:: routine_s2:
File : :file:`truncate_wf.irp.f`
.. code:: fortran
subroutine routine_s2
Needs:
.. hlist::
:columns: 3
* :c:data:`det_to_configuration`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`weight_configuration`
Called by:
.. hlist::
:columns: 3
* :c:func:`truncate_wf`
Calls:
.. hlist::
:columns: 3
* :c:func:`save_wavefunction_general`
.. c:function:: routine_save_one_e_dm:
@ -208,41 +206,3 @@ Subroutines / functions
* :c:func:`ezfio_set_aux_quantities_data_one_e_dm_beta_ao`
* :c:func:`ezfio_set_aux_quantities_data_one_e_dm_beta_mo`
.. c:function:: run:
File : :file:`print_hamiltonian.irp.f`
.. code:: fortran
subroutine run
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det`
Called by:
.. hlist::
:columns: 3
* :c:func:`print_energy`
* :c:func:`print_hamiltonian`
* :c:func:`pt2`
* :c:func:`scf`
Calls:
.. hlist::
:columns: 3
* :c:func:`i_h_j`

File diff suppressed because it is too large Load Diff

View File

@ -381,6 +381,13 @@ Subroutines / functions
* :c:data:`zmq_state`
Calls:
.. hlist::
:columns: 3
* :c:func:`sscanf_ssds`
.. c:function:: disconnect_from_taskserver:
@ -414,12 +421,12 @@ Subroutines / functions
Disconnect from the task server
Needs:
Calls:
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:func:`sscanf_ss`
.. c:function:: end_parallel_job:
@ -439,8 +446,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`zmq_context`
* :c:data:`zmq_state`
Called by:
@ -450,6 +457,7 @@ Subroutines / functions
* :c:data:`ao_two_e_integrals_erf_in_map`
* :c:data:`ao_two_e_integrals_in_map`
* :c:func:`h_s2_u_0_nstates_zmq`
* :c:func:`h_u_0_nstates_zmq`
* :c:func:`zmq_pt2`
* :c:func:`zmq_selection`
@ -555,6 +563,8 @@ Subroutines / functions
* :c:func:`ao_two_e_integrals_erf_in_map_slave`
* :c:func:`ao_two_e_integrals_in_map_slave`
* :c:func:`davidson_csf_run_slave`
* :c:func:`davidson_nos2_run_slave`
* :c:func:`davidson_run_slave`
* :c:func:`run_pt2_slave_large`
* :c:func:`run_pt2_slave_small`
@ -627,6 +637,8 @@ Subroutines / functions
* :c:func:`ao_two_e_integrals_erf_in_map_slave`
* :c:func:`ao_two_e_integrals_in_map_collector`
* :c:func:`ao_two_e_integrals_in_map_slave`
* :c:func:`davidson_csf_run_slave`
* :c:func:`davidson_nos2_run_slave`
* :c:func:`davidson_run_slave`
* :c:func:`end_parallel_job`
* :c:func:`pt2_collector`
@ -655,6 +667,13 @@ Subroutines / functions
* :c:data:`zmq_state`
Calls:
.. hlist::
:columns: 3
* :c:func:`sscanf_sd`
.. c:function:: get_tasks_from_taskserver:
@ -693,9 +712,9 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`zmq_socket_pull_tcp_address`
* :c:data:`zmq_context`
* :c:data:`zmq_socket_pull_tcp_address`
* :c:data:`zmq_state`
Called by:
@ -705,6 +724,7 @@ Subroutines / functions
* :c:data:`ao_two_e_integrals_erf_in_map`
* :c:data:`ao_two_e_integrals_in_map`
* :c:func:`h_s2_u_0_nstates_zmq`
* :c:func:`h_u_0_nstates_zmq`
* :c:func:`zmq_pt2`
* :c:func:`zmq_selection`
@ -735,8 +755,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_socket_pull_tcp_address`
* :c:data:`zmq_context`
* :c:data:`zmq_socket_pull_tcp_address`
Calls:
@ -765,8 +785,8 @@ Subroutines / functions
:columns: 3
* :c:data:`qp_run_address`
* :c:data:`zmq_socket_pull_tcp_address`
* :c:data:`zmq_context`
* :c:data:`zmq_socket_pull_tcp_address`
Calls:
@ -795,8 +815,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_socket_pull_tcp_address`
* :c:data:`zmq_context`
* :c:data:`zmq_socket_pull_tcp_address`
Calls:
@ -824,8 +844,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_socket_pull_tcp_address`
* :c:data:`zmq_context`
* :c:data:`zmq_socket_pull_tcp_address`
Calls:
@ -1185,8 +1205,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`mpi_master`
* :c:data:`zmq_state`
.. c:function:: zmq_get8_ivector:
@ -1206,8 +1226,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`mpi_master`
* :c:data:`zmq_state`
.. c:function:: zmq_get_dmatrix:
@ -1227,8 +1247,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`mpi_master`
* :c:data:`zmq_state`
.. c:function:: zmq_get_dvector:
@ -1248,8 +1268,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`mpi_master`
* :c:data:`zmq_state`
.. c:function:: zmq_get_i8matrix:
@ -1269,8 +1289,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`mpi_master`
* :c:data:`zmq_state`
.. c:function:: zmq_get_imatrix:
@ -1290,8 +1310,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`mpi_master`
* :c:data:`zmq_state`
.. c:function:: zmq_get_int:
@ -1311,8 +1331,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`mpi_master`
* :c:data:`zmq_state`
.. c:function:: zmq_get_int_nompi:
@ -1352,8 +1372,8 @@ Subroutines / functions
.. hlist::
:columns: 3
* :c:data:`zmq_state`
* :c:data:`mpi_master`
* :c:data:`zmq_state`
.. c:function:: zmq_port:

File diff suppressed because it is too large Load Diff

View File

@ -72,9 +72,13 @@ cisd
.. hlist::
:columns: 3
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`mo_coef`
* :c:data:`level_shift`
* :c:data:`mo_coef`
* :c:data:`psi_configuration`
* :c:data:`n_det`
* :c:data:`c0_weight`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_configuration`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
* :c:data:`psi_det_sorted_bit`
* :c:data:`read_wf`

View File

@ -50,15 +50,20 @@ fci
* :c:data:`do_pt2`
* :c:data:`is_zmq_slave`
* :c:data:`json_int_fmt`
* :c:data:`json_unit`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`pt2_min_parallel_tasks`
Calls:
.. hlist::
:columns: 3
* :c:func:`json_close`
* :c:func:`run_cipsi`
* :c:func:`run_slave_cipsi`
* :c:func:`run_stochastic_cipsi`
@ -72,18 +77,19 @@ fci
* :c:data:`ci_electronic_energy`
* :c:data:`ci_energy`
* :c:data:`ci_electronic_energy`
* :c:data:`psi_configuration`
* :c:data:`n_det`
* :c:data:`n_iter`
* :c:data:`psi_occ_pattern`
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`c0_weight`
* :c:data:`distributed_davidson`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_configuration`
* :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_match_weight`

View File

@ -24,6 +24,7 @@ four_idx_transform
.. hlist::
:columns: 3
* :c:data:`do_mo_cholesky`
* :c:data:`io_mo_two_e_integrals`
* :c:data:`mo_two_e_integrals_in_map`

View File

@ -46,10 +46,18 @@ pt2
.. hlist::
:columns: 3
* :c:data:`n_det_generators`
* :c:data:`n_det_selectors`
* :c:data:`distributed_davidson`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`pt2_e0_denominator`
* :c:data:`pt2_match_weight`
* :c:data:`pt2_overlap`
* :c:data:`pt2_stoch_istate`
* :c:data:`read_wf`
* :c:data:`selection_weight`
* :c:data:`state_average_weight`
* :c:data:`threshold_davidson_pt2`
* :c:data:`threshold_generators`
* :c:data:`variance_match_weight`

View File

@ -30,7 +30,6 @@ rs_ks_scf
.. hlist::
:columns: 3
* :c:func:`check_coherence_functional`
* :c:func:`create_guess`
* :c:func:`orthonormalize_mos`
* :c:func:`run`

View File

@ -25,6 +25,7 @@ save_natorb
.. hlist::
:columns: 3
* :c:data:`nucl_coord`
* :c:data:`read_wf`
Calls:

View File

@ -58,5 +58,9 @@ scf
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`fock_matrix_ao_alpha`
* :c:data:`mo_coef`
* :c:data:`level_shift`
* :c:data:`mo_coef`
* :c:data:`mo_label`

View File

@ -0,0 +1,87 @@
[ao_extra_basis]
type: character*(256)
doc: Name of the |ao_extra| basis set
interface: ezfio
[ao_extra_num]
type: integer
doc: Number of |ao_extras|
interface: ezfio, provider
[ao_extra_prim_num]
type: integer
doc: Number of primitives per |ao_extra|
size: (extra_basis.ao_extra_num)
interface: ezfio, provider
[ao_extra_prim_num_max]
type: integer
doc: Maximum number of primitives
default: =maxval(extra_basis.ao_extra_prim_num)
interface: ezfio
[ao_extra_nucl]
type: integer
doc: Index of the nucleus on which the |ao_extra| is centered
size: (extra_basis.ao_extra_num)
interface: ezfio, provider
[ao_extra_power]
type: integer
doc: Powers of x, y and z for each |ao_extra|
size: (extra_basis.ao_extra_num,3)
interface: ezfio, provider
[ao_extra_coef]
type: double precision
doc: Primitive coefficients, read from input. Those should not be used directly, as the MOs are expressed on the basis of **normalized** ao_extras.
size: (extra_basis.ao_extra_num,extra_basis.ao_extra_prim_num_max)
interface: ezfio, provider
[ao_extra_expo]
type: double precision
doc: Exponents for each primitive of each |ao_extra|
size: (extra_basis.ao_extra_num,extra_basis.ao_extra_prim_num_max)
interface: ezfio, provider
[ao_extra_md5]
type: character*(32)
doc: MD5 key, specific of the |ao_extra| basis
interface: ezfio, provider
[ao_extra_cartesian]
type: logical
doc: If |true|, use |ao_extras| in Cartesian coordinates (6d,10f,...)
interface: ezfio, provider
default: false
[ao_extra_normalized]
type: logical
doc: Use normalized basis functions
interface: ezfio, provider
default: true
[primitives_normalized_extra]
type: logical
doc: Use normalized primitive functions
interface: ezfio, provider
default: true
[ao_extra_expo_im]
type: double precision
doc: imag part for Exponents for each primitive of each cGTOs |ao_extra|
size: (extra_basis.ao_extra_num,extra_basis.ao_extra_prim_num_max)
interface: ezfio, provider
[ao_extra_expo_pw]
type: double precision
doc: plane wave part for each primitive GTOs |ao_extra|
size: (3,extra_basis.ao_extra_num,extra_basis.ao_extra_prim_num_max)
interface: ezfio, provider
[ao_extra_expo_phase]
type: double precision
doc: phase shift for each primitive GTOs |ao_extra|
size: (3,extra_basis.ao_extra_num,extra_basis.ao_extra_prim_num_max)
interface: ezfio, provider

View File

@ -0,0 +1,3 @@
extra_nuclei
basis
ao_basis

View File

@ -0,0 +1,4 @@
===========
extra_basis
===========

View File

@ -0,0 +1,325 @@
BEGIN_PROVIDER [ integer, ao_extra_prim_num_max ]
implicit none
BEGIN_DOC
! Max number of primitives.
END_DOC
ao_extra_prim_num_max = maxval(ao_extra_prim_num)
END_PROVIDER
BEGIN_PROVIDER [ integer, ao_extra_shell, (ao_extra_num) ]
implicit none
BEGIN_DOC
! Index of the shell to which the ao_extra corresponds
END_DOC
integer :: i, j, k, n
k=0
do i=1,shell_num
n = shell_ang_mom(i)+1
do j=1,(n*(n+1))/2
k = k+1
ao_extra_shell(k) = i
enddo
enddo
END_PROVIDER
BEGIN_PROVIDER [ integer, ao_extra_first_of_shell, (shell_num) ]
implicit none
BEGIN_DOC
! Index of the shell to which the ao_extra corresponds
END_DOC
integer :: i, j, k, n
k=1
do i=1,shell_num
ao_extra_first_of_shell(i) = k
n = shell_ang_mom(i)+1
k = k+(n*(n+1))/2
enddo
END_PROVIDER
BEGIN_PROVIDER [ double precision, ao_extra_coef_normalized, (ao_extra_num,ao_extra_prim_num_max) ]
&BEGIN_PROVIDER [ double precision, ao_extra_coef_normalization_factor, (ao_extra_num) ]
implicit none
BEGIN_DOC
! Coefficients including the |ao_extra| normalization
END_DOC
double precision :: norm,overlap_x,overlap_y,overlap_z,C_A(3), c
integer :: l, powA(3), nz
integer :: i,j,k
nz=100
C_A(1) = 0.d0
C_A(2) = 0.d0
C_A(3) = 0.d0
ao_extra_coef_normalized = 0.d0
do i=1,ao_extra_num
! powA(1) = ao_extra_power(i,1) + ao_extra_power(i,2) + ao_extra_power(i,3)
! powA(2) = 0
! powA(3) = 0
powA(1) = ao_extra_power(i,1)
powA(2) = ao_extra_power(i,2)
powA(3) = ao_extra_power(i,3)
! Normalization of the primitives
if (primitives_normalized_extra) then
do j=1,ao_extra_prim_num(i)
call overlap_gaussian_xyz(C_A,C_A,ao_extra_expo(i,j),ao_extra_expo(i,j), &
powA,powA,overlap_x,overlap_y,overlap_z,norm,nz)
ao_extra_coef_normalized(i,j) = ao_extra_coef(i,j)/dsqrt(norm)
enddo
else
do j=1,ao_extra_prim_num(i)
ao_extra_coef_normalized(i,j) = ao_extra_coef(i,j)
enddo
endif
! Normalization of the contracted basis functions
if (ao_extra_normalized) then
norm = 0.d0
do j=1,ao_extra_prim_num(i)
do k=1,ao_extra_prim_num(i)
call overlap_gaussian_xyz(C_A,C_A,ao_extra_expo(i,j),ao_extra_expo(i,k),powA,powA,overlap_x,overlap_y,overlap_z,c,nz)
norm = norm+c*ao_extra_coef_normalized(i,j)*ao_extra_coef_normalized(i,k)
enddo
enddo
ao_extra_coef_normalization_factor(i) = 1.d0/dsqrt(norm)
else
ao_extra_coef_normalization_factor(i) = 1.d0
endif
enddo
END_PROVIDER
BEGIN_PROVIDER [ double precision, ao_extra_coef_normalized_ordered, (ao_extra_num,ao_extra_prim_num_max) ]
&BEGIN_PROVIDER [ double precision, ao_extra_expo_ordered, (ao_extra_num,ao_extra_prim_num_max) ]
implicit none
BEGIN_DOC
! Sorted primitives to accelerate 4 index |MO| transformation
END_DOC
integer :: iorder(ao_extra_prim_num_max)
double precision :: d(ao_extra_prim_num_max,2)
integer :: i,j
do i=1,ao_extra_num
do j=1,ao_extra_prim_num(i)
iorder(j) = j
d(j,1) = ao_extra_expo(i,j)
d(j,2) = ao_extra_coef_normalized(i,j)
enddo
call dsort(d(1,1),iorder,ao_extra_prim_num(i))
call dset_order(d(1,2),iorder,ao_extra_prim_num(i))
do j=1,ao_extra_prim_num(i)
ao_extra_expo_ordered(i,j) = d(j,1)
ao_extra_coef_normalized_ordered(i,j) = d(j,2)
enddo
enddo
END_PROVIDER
BEGIN_PROVIDER [ double precision, ao_extra_coef_normalized_ordered_transp, (ao_extra_prim_num_max,ao_extra_num) ]
implicit none
BEGIN_DOC
! Transposed :c:data:`ao_extra_coef_normalized_ordered`
END_DOC
integer :: i,j
do j=1, ao_extra_num
do i=1, ao_extra_prim_num_max
ao_extra_coef_normalized_ordered_transp(i,j) = ao_extra_coef_normalized_ordered(j,i)
enddo
enddo
END_PROVIDER
BEGIN_PROVIDER [ double precision, ao_extra_expo_ordered_transp, (ao_extra_prim_num_max,ao_extra_num) ]
implicit none
BEGIN_DOC
! Transposed :c:data:`ao_extra_expo_ordered`
END_DOC
integer :: i,j
do j=1, ao_extra_num
do i=1, ao_extra_prim_num_max
ao_extra_expo_ordered_transp(i,j) = ao_extra_expo_ordered(j,i)
enddo
enddo
END_PROVIDER
BEGIN_PROVIDER [ integer, ao_extra_l, (ao_extra_num) ]
&BEGIN_PROVIDER [ integer, ao_extra_l_max ]
&BEGIN_PROVIDER [ character*(128), ao_extra_l_char, (ao_extra_num) ]
implicit none
BEGIN_DOC
! :math:`l` value of the |ao_extra|: :math`a+b+c` in :math:`x^a y^b z^c`
END_DOC
integer :: i
do i=1,ao_extra_num
ao_extra_l(i) = ao_extra_power(i,1) + ao_extra_power(i,2) + ao_extra_power(i,3)
ao_extra_l_char(i) = l_to_character(ao_extra_l(i))
enddo
ao_extra_l_max = maxval(ao_extra_l)
END_PROVIDER
integer function ao_extra_power_index(nx,ny,nz)
implicit none
integer, intent(in) :: nx, ny, nz
BEGIN_DOC
! Unique index given to a triplet of powers:
!
! :math:`\frac{1}{2} (l-n_x) (l-n_x+1) + n_z + 1`
END_DOC
integer :: l
l = nx + ny + nz
ao_extra_power_index = ((l-nx)*(l-nx+1))/2 + nz + 1
end
BEGIN_PROVIDER [ integer, Nucl_N_ao_extras, (extra_nucl_num)]
&BEGIN_PROVIDER [ integer, N_ao_extras_max ]
implicit none
BEGIN_DOC
! Number of |ao_extras| per atom
END_DOC
integer :: i
Nucl_N_ao_extras = 0
do i = 1, ao_extra_num
Nucl_N_ao_extras(ao_extra_nucl(i)) +=1
enddo
N_ao_extras_max = maxval(Nucl_N_ao_extras)
END_PROVIDER
BEGIN_PROVIDER [ integer, Nucl_ao_extras, (extra_nucl_num,N_ao_extras_max)]
implicit none
BEGIN_DOC
! List of |ao_extras| centered on each atom
END_DOC
integer :: i
integer, allocatable :: nucl_tmp(:)
allocate(nucl_tmp(nucl_num))
nucl_tmp = 0
Nucl_ao_extras = 0
do i = 1, ao_extra_num
nucl_tmp(ao_extra_nucl(i))+=1
Nucl_ao_extras(ao_extra_nucl(i),nucl_tmp(ao_extra_nucl(i))) = i
enddo
deallocate(nucl_tmp)
END_PROVIDER
BEGIN_PROVIDER [ integer, Nucl_list_shell_ao_extras, (extra_nucl_num,N_ao_extras_max)]
&BEGIN_PROVIDER [ integer, Nucl_num_shell_ao_extras, (nucl_num)]
implicit none
integer :: i,j,k
BEGIN_DOC
! Index of the shell type |ao_extras| and of the corresponding |ao_extras|
! By convention, for p,d,f and g |ao_extras|, we take the index
! of the |ao_extra| with the the corresponding power in the x axis
END_DOC
do i = 1, extra_nucl_num
Nucl_num_shell_ao_extras(i) = 0
do j = 1, Nucl_N_ao_extras(i)
if (ao_extra_power(Nucl_ao_extras(i,j),1) == ao_extra_l(Nucl_ao_extras(i,j))) then
Nucl_num_shell_ao_extras(i)+=1
Nucl_list_shell_ao_extras(i,Nucl_num_shell_ao_extras(i))=Nucl_ao_extras(i,j)
endif
enddo
enddo
END_PROVIDER
BEGIN_PROVIDER [ character*(4), ao_extra_l_char_space, (ao_extra_num) ]
implicit none
BEGIN_DOC
! Converts an l value to a string
END_DOC
integer :: i
character*(4) :: give_ao_extra_character_space
do i=1,ao_extra_num
if(ao_extra_l(i)==0)then
! S type ao_extra
give_ao_extra_character_space = 'S '
elseif(ao_extra_l(i) == 1)then
! P type ao_extra
if(ao_extra_power(i,1)==1)then
give_ao_extra_character_space = 'X '
elseif(ao_extra_power(i,2) == 1)then
give_ao_extra_character_space = 'Y '
else
give_ao_extra_character_space = 'Z '
endif
elseif(ao_extra_l(i) == 2)then
! D type ao_extra
if(ao_extra_power(i,1)==2)then
give_ao_extra_character_space = 'XX '
elseif(ao_extra_power(i,2) == 2)then
give_ao_extra_character_space = 'YY '
elseif(ao_extra_power(i,3) == 2)then
give_ao_extra_character_space = 'ZZ '
elseif(ao_extra_power(i,1) == 1 .and. ao_extra_power(i,2) == 1)then
give_ao_extra_character_space = 'XY '
elseif(ao_extra_power(i,1) == 1 .and. ao_extra_power(i,3) == 1)then
give_ao_extra_character_space = 'XZ '
else
give_ao_extra_character_space = 'YZ '
endif
elseif(ao_extra_l(i) == 3)then
! F type ao_extra
if(ao_extra_power(i,1)==3)then
give_ao_extra_character_space = 'XXX '
elseif(ao_extra_power(i,2) == 3)then
give_ao_extra_character_space = 'YYY '
elseif(ao_extra_power(i,3) == 3)then
give_ao_extra_character_space = 'ZZZ '
elseif(ao_extra_power(i,1) == 2 .and. ao_extra_power(i,2) == 1)then
give_ao_extra_character_space = 'XXY '
elseif(ao_extra_power(i,1) == 2 .and. ao_extra_power(i,3) == 1)then
give_ao_extra_character_space = 'XXZ '
elseif(ao_extra_power(i,2) == 2 .and. ao_extra_power(i,1) == 1)then
give_ao_extra_character_space = 'YYX '
elseif(ao_extra_power(i,2) == 2 .and. ao_extra_power(i,3) == 1)then
give_ao_extra_character_space = 'YYZ '
elseif(ao_extra_power(i,3) == 2 .and. ao_extra_power(i,1) == 1)then
give_ao_extra_character_space = 'ZZX '
elseif(ao_extra_power(i,3) == 2 .and. ao_extra_power(i,2) == 1)then
give_ao_extra_character_space = 'ZZY '
elseif(ao_extra_power(i,3) == 1 .and. ao_extra_power(i,2) == 1 .and. ao_extra_power(i,3) == 1)then
give_ao_extra_character_space = 'XYZ '
endif
elseif(ao_extra_l(i) == 4)then
! G type ao_extra
if(ao_extra_power(i,1)==4)then
give_ao_extra_character_space = 'XXXX'
elseif(ao_extra_power(i,2) == 4)then
give_ao_extra_character_space = 'YYYY'
elseif(ao_extra_power(i,3) == 4)then
give_ao_extra_character_space = 'ZZZZ'
elseif(ao_extra_power(i,1) == 3 .and. ao_extra_power(i,2) == 1)then
give_ao_extra_character_space = 'XXXY'
elseif(ao_extra_power(i,1) == 3 .and. ao_extra_power(i,3) == 1)then
give_ao_extra_character_space = 'XXXZ'
elseif(ao_extra_power(i,2) == 3 .and. ao_extra_power(i,1) == 1)then
give_ao_extra_character_space = 'YYYX'
elseif(ao_extra_power(i,2) == 3 .and. ao_extra_power(i,3) == 1)then
give_ao_extra_character_space = 'YYYZ'
elseif(ao_extra_power(i,3) == 3 .and. ao_extra_power(i,1) == 1)then
give_ao_extra_character_space = 'ZZZX'
elseif(ao_extra_power(i,3) == 3 .and. ao_extra_power(i,2) == 1)then
give_ao_extra_character_space = 'ZZZY'
elseif(ao_extra_power(i,1) == 2 .and. ao_extra_power(i,2) == 2)then
give_ao_extra_character_space = 'XXYY'
elseif(ao_extra_power(i,2) == 2 .and. ao_extra_power(i,3) == 2)then
give_ao_extra_character_space = 'YYZZ'
elseif(ao_extra_power(i,1) == 2 .and. ao_extra_power(i,2) == 1 .and. ao_extra_power(i,3) == 1)then
give_ao_extra_character_space = 'XXYZ'
elseif(ao_extra_power(i,2) == 2 .and. ao_extra_power(i,1) == 1 .and. ao_extra_power(i,3) == 1)then
give_ao_extra_character_space = 'YYXZ'
elseif(ao_extra_power(i,3) == 2 .and. ao_extra_power(i,1) == 1 .and. ao_extra_power(i,2) == 1)then
give_ao_extra_character_space = 'ZZXY'
endif
endif
ao_extra_l_char_space(i) = give_ao_extra_character_space
enddo
END_PROVIDER

View File

@ -0,0 +1,19 @@
BEGIN_PROVIDER [ integer, n_pt_max_extra_basis_integrals ]
&BEGIN_PROVIDER [ integer, n_pt_max_extra_basis_i_x]
implicit none
BEGIN_DOC
! Number of points used in the numerical integrations.
END_DOC
integer :: n_pt_sup
integer :: prim_power_l_max
include 'utils/constants.include.F'
prim_power_l_max = maxval(ao_extra_power)
n_pt_max_extra_basis_integrals = 24 * prim_power_l_max + 4
n_pt_max_extra_basis_i_x = 8 * prim_power_l_max
ASSERT (n_pt_max_extra_basis_i_x-1 <= max_dim)
if (n_pt_max_extra_basis_i_x-1 > max_dim) then
print *, 'Increase max_dim in utils/constants.include.F to ', n_pt_max_extra_basis_i_x-1
stop 1
endif
END_PROVIDER

View File

@ -0,0 +1,15 @@
program extra_basis
implicit none
BEGIN_DOC
! TODO : Put the documentation of the program here
END_DOC
integer :: i
print*,'extra_nucl_num = ',extra_nucl_num
do i = 1, extra_nucl_num
print*,'i = ',i
print*,'extra_nucl_label = ',extra_nucl_label(i)
print*,'extra_nucl_charge = ',extra_nucl_charge(i)
print*,'extra_nucl_coord = '
print*,extra_nucl_coord(i,1:3)
enddo
end

View File

@ -0,0 +1,23 @@
#!/bin/bash
# Check if the QP_ROOT environment variable is set.
if [[ -z ${QP_ROOT} ]]
then
print "The QP_ROOT environment variable is not set."
print "Please reload the quantum_package.rc file."
exit -1
fi
# Get the absolute path of the current directory.
currdir=${PWD}
# list of the scripts to be used by the module
scripts_list="qp_copy_extra_basis"
# Make a symbolic link for all scripts to be used in the ${QP_ROOT}/scripts/
# directory.
for i in $scripts_list
do
ln --symbolic ${currdir}/$i ${QP_ROOT}/scripts/
done

View File

@ -0,0 +1,59 @@
#!/bin/bash
# specify the QP folder
QP=$QP_ROOT
dir=${QP}
# sourcing the quantum_package.rc file
. ${QP}/quantum_package.rc
EZFIO_extra=${1%/}
EZFIO_target=${2%/}
echo "********** SCRIPT TO COPY DATA FROM EZFIO TO ANOTHER *********"
echo "Extracting data from "$EZFIO_extra
echo "and Copying data to "$EZFIO_target
### COPYING ALL DATA FROM $EZFIO_extra/nuclei/ to ${EZFIO_target}/extra_nuclei/
echo "COPYING ALL DATA FROM "$EZFIO_extra"/nuclei/ to "${EZFIO_target}"/extra_nuclei/"
direxists=false
if [ -d ${EZFIO_target}/extra_nuclei/ ] ; then
direxists=true
echo "The directory extra_nuclei exists"
else
echo "Creating the directory extra_nuclei "
direxists=false
mkdir ${EZFIO_target}/extra_nuclei/
fi
data=`\ls $EZFIO_extra/nuclei/`
for i in $data
do
echo $i
newfile=`echo $i | sed 's/nucl/extra_nucl/g' `
echo $newfile
cp ${EZFIO_extra}/nuclei/$i ${EZFIO_target}/extra_nuclei/$newfile
done
### COPYING ALL DATA FROM $EZFIO_extra/ao_basis/ to ${EZFIO_target}/ao_extra_basis/
direxists=false
if [ -d ${EZFIO_target}/ao_extra_basis/ ] ; then
direxists=true
echo "The directory exists ao_extra_basis"
else
echo "Creating the directory ao_extra_basis"
direxists=false
mkdir ${EZFIO_target}/ao_extra_basis/
fi
echo "COPYING ALL DATA FROM "$EZFIO_extra"/ao_basis/ to "${EZFIO_target}"/ao_extra_basis/"
data=`\ls $EZFIO_extra/ao_basis/`
for i in $data
do
echo $i
newfile=`echo $i | sed 's/ao/ao_extra/g' `
echo $newfile
cp ${EZFIO_extra}/ao_basis/$i ${EZFIO_target}/ao_extra_basis/$newfile
done
i=primitives_normalized
newfile=primitives_normalized_extra
cp ${EZFIO_extra}/ao_basis/$i ${EZFIO_target}/ao_extra_basis/$newfile

View File

@ -0,0 +1,20 @@
#!/bin/bash
# Check if the QP_ROOT environment variable is set.
if [[ -z ${QP_ROOT} ]]
then
print "The QP_ROOT environment variable is not set."
print "Please reload the quantum_package.rc file."
exit -1
fi
# list of the scripts to be used by the module
scripts_list="qp_copy_extra_basis"
# Destroy ONLY the symbolic link for the scripts to be used in the
# ${QP_ROOT}/scripts/ directory.
for i in $scripts_list
do
find ${QP_ROOT}/scripts/$i -type l -delete
done

View File

@ -0,0 +1,2 @@
extra_basis
ao_one_e_ints

View File

@ -0,0 +1,4 @@
===============
extra_basis_int
===============

View File

@ -0,0 +1,136 @@
! ---
BEGIN_PROVIDER [double precision, ao_extra_overlap , (ao_extra_num, ao_extra_num)]
BEGIN_DOC
! Overlap between atomic basis functions:
!
! :math:`\int \chi_i(r) \chi_j(r) dr`
END_DOC
implicit none
integer :: i, j, n, l, dim1, power_A(3), power_B(3)
double precision :: overlap, overlap_x, overlap_y, overlap_z
double precision :: alpha, beta, c
double precision :: A_center(3), B_center(3)
ao_extra_overlap = 0.d0
dim1=100
!$OMP PARALLEL DO SCHEDULE(GUIDED) &
!$OMP DEFAULT(NONE) &
!$OMP PRIVATE(A_center,B_center,power_A,power_B,&
!$OMP overlap_x,overlap_y, overlap_z, overlap, &
!$OMP alpha, beta,i,j,n,l,c) &
!$OMP SHARED(extra_nucl_coord,ao_extra_power,ao_extra_prim_num, &
!$OMP ao_extra_overlap,ao_extra_num,ao_extra_coef_normalized_ordered_transp,ao_extra_nucl, &
!$OMP ao_extra_expo_ordered_transp,dim1)
do j=1,ao_extra_num
A_center(1) = extra_nucl_coord( ao_extra_nucl(j), 1 )
A_center(2) = extra_nucl_coord( ao_extra_nucl(j), 2 )
A_center(3) = extra_nucl_coord( ao_extra_nucl(j), 3 )
power_A(1) = ao_extra_power( j, 1 )
power_A(2) = ao_extra_power( j, 2 )
power_A(3) = ao_extra_power( j, 3 )
do i= 1,ao_extra_num
B_center(1) = extra_nucl_coord( ao_extra_nucl(i), 1 )
B_center(2) = extra_nucl_coord( ao_extra_nucl(i), 2 )
B_center(3) = extra_nucl_coord( ao_extra_nucl(i), 3 )
power_B(1) = ao_extra_power( i, 1 )
power_B(2) = ao_extra_power( i, 2 )
power_B(3) = ao_extra_power( i, 3 )
do n = 1,ao_extra_prim_num(j)
alpha = ao_extra_expo_ordered_transp(n,j)
do l = 1, ao_extra_prim_num(i)
beta = ao_extra_expo_ordered_transp(l,i)
call overlap_gaussian_xyz(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,overlap_y,overlap_z,overlap,dim1)
c = ao_extra_coef_normalized_ordered_transp(n,j) * ao_extra_coef_normalized_ordered_transp(l,i)
ao_extra_overlap(i,j) += c * overlap
if(isnan(ao_extra_overlap(i,j)))then
print*,'i,j',i,j
print*,'l,n',l,n
print*,'c,overlap',c,overlap
print*,overlap_x,overlap_y,overlap_z
stop
endif
enddo
enddo
enddo
enddo
!$OMP END PARALLEL DO
END_PROVIDER
! ---
BEGIN_PROVIDER [double precision, ao_extra_overlap_mixed , (ao_num, ao_extra_num)]
BEGIN_DOC
! Overlap between atomic basis functions:
!
! <AO_i|AO_j extra basis>
END_DOC
implicit none
integer :: i, j, n, l, dim1, power_A(3), power_B(3)
double precision :: overlap, overlap_x, overlap_y, overlap_z
double precision :: alpha, beta, c
double precision :: A_center(3), B_center(3)
ao_extra_overlap_mixed = 0.d0
dim1=100
!$OMP PARALLEL DO SCHEDULE(GUIDED) &
!$OMP DEFAULT(NONE) &
!$OMP PRIVATE(A_center,B_center,power_A,power_B,&
!$OMP overlap_x,overlap_y, overlap_z, overlap, &
!$OMP alpha, beta,i,j,n,l,c) &
!$OMP SHARED(extra_nucl_coord,ao_extra_power,ao_extra_prim_num, &
!$OMP ao_extra_overlap_mixed,ao_extra_num,ao_extra_coef_normalized_ordered_transp,ao_extra_nucl, &
!$OMP ao_extra_expo_ordered_transp,dim1, &
!$OMP nucl_coord,ao_power,ao_prim_num, &
!$OMP ao_num,ao_coef_normalized_ordered_transp,ao_nucl, &
!$OMP ao_expo_ordered_transp)
do j=1,ao_extra_num
A_center(1) = extra_nucl_coord( ao_extra_nucl(j), 1 )
A_center(2) = extra_nucl_coord( ao_extra_nucl(j), 2 )
A_center(3) = extra_nucl_coord( ao_extra_nucl(j), 3 )
power_A(1) = ao_extra_power( j, 1 )
power_A(2) = ao_extra_power( j, 2 )
power_A(3) = ao_extra_power( j, 3 )
do i= 1,ao_num
B_center(1) = nucl_coord( ao_nucl(i), 1 )
B_center(2) = nucl_coord( ao_nucl(i), 2 )
B_center(3) = nucl_coord( ao_nucl(i), 3 )
power_B(1) = ao_power( i, 1 )
power_B(2) = ao_power( i, 2 )
power_B(3) = ao_power( i, 3 )
do n = 1,ao_extra_prim_num(j)
alpha = ao_extra_expo_ordered_transp(n,j)
do l = 1, ao_prim_num(i)
beta = ao_expo_ordered_transp(l,i)
call overlap_gaussian_xyz(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,overlap_y,overlap_z,overlap,dim1)
c = ao_extra_coef_normalized_ordered_transp(n,j) * ao_coef_normalized_ordered_transp(l,i)
ao_extra_overlap_mixed(i,j) += c * overlap
if(isnan(ao_extra_overlap_mixed(i,j)))then
print*,'i,j',i,j
print*,'l,n',l,n
print*,'c,overlap',c,overlap
print*,overlap_x,overlap_y,overlap_z
stop
endif
enddo
enddo
enddo
enddo
!$OMP END PARALLEL DO
END_PROVIDER
! ---

View File

@ -0,0 +1,7 @@
program extra_basis_int
implicit none
BEGIN_DOC
! TODO : Put the documentation of the program here
END_DOC
print *, 'Hello world'
end

View File

@ -0,0 +1,23 @@
[extra_nucl_num]
doc: Number of nuclei
type: integer
interface: ezfio, provider
[extra_nucl_label]
doc: Nuclear labels
type: character*(32)
size: (extra_nuclei.extra_nucl_num)
interface: ezfio, provider
[extra_nucl_charge]
doc: Nuclear charges
type:double precision
size: (extra_nuclei.extra_nucl_num)
interface: ezfio, provider
[extra_nucl_coord]
doc: Nuclear coordinates in the format (:, {x,y,z})
type: double precision
size: (extra_nuclei.extra_nucl_num,3)
interface: ezfio

View File

@ -0,0 +1,3 @@
ezfio_files
utils
nuclei

View File

@ -0,0 +1,4 @@
============
extra_nuclei
============

View File

@ -0,0 +1,7 @@
program extra_nuclei
implicit none
BEGIN_DOC
! TODO : Put the documentation of the program here
END_DOC
print *, 'Hello world'
end

View File

@ -0,0 +1,122 @@
BEGIN_PROVIDER [ double precision, extra_nucl_coord, (extra_nucl_num,3) ]
implicit none
BEGIN_DOC
! Nuclear coordinates in the format (:, {x,y,z})
END_DOC
PROVIDE ezfio_filename extra_nucl_label extra_nucl_charge
if (mpi_master) then
double precision, allocatable :: buffer(:,:)
extra_nucl_coord = 0.d0
allocate (buffer(extra_nucl_num,3))
buffer = 0.d0
logical :: has
call ezfio_has_extra_nuclei_extra_nucl_coord(has)
if (.not.has) then
print *, irp_here
stop 1
endif
call ezfio_get_extra_nuclei_extra_nucl_coord(buffer)
integer :: i,j
do i=1,3
do j=1,extra_nucl_num
extra_nucl_coord(j,i) = buffer(j,i)
enddo
enddo
deallocate(buffer)
character*(64), parameter :: f = '(A16, 4(1X,F12.6))'
character*(64), parameter :: ft= '(A16, 4(1X,A12 ))'
double precision, parameter :: a0= 0.529177249d0
call write_time(6)
write(6,'(A)') ''
write(6,'(A)') 'Extra Nuclear Coordinates (Angstroms)'
write(6,'(A)') '====================================='
write(6,'(A)') ''
write(6,ft) &
'================','============','============','============','============'
write(6,*) &
' Atom Charge X Y Z '
write(6,ft) &
'================','============','============','============','============'
do i=1,extra_nucl_num
write(6,f) extra_nucl_label(i), extra_nucl_charge(i), &
extra_nucl_coord(i,1)*a0, &
extra_nucl_coord(i,2)*a0, &
extra_nucl_coord(i,3)*a0
enddo
write(6,ft) &
'================','============','============','============','============'
write(6,'(A)') ''
if (extra_nucl_num > 1) then
double precision :: dist_min, x, y, z
dist_min = huge(1.d0)
do i=1,extra_nucl_num
do j=i+1,extra_nucl_num
x = extra_nucl_coord(i,1)-extra_nucl_coord(j,1)
y = extra_nucl_coord(i,2)-extra_nucl_coord(j,2)
z = extra_nucl_coord(i,3)-extra_nucl_coord(j,3)
dist_min = min(x*x + y*y + z*z, dist_min)
enddo
enddo
write(6,'(A,F12.4,A)') 'Minimal interatomic distance found: ', &
dsqrt(dist_min)*a0,' Angstrom'
endif
endif
IRP_IF MPI_DEBUG
print *, irp_here, mpi_rank
call MPI_BARRIER(MPI_COMM_WORLD, ierr)
IRP_ENDIF
IRP_IF MPI
include 'mpif.h'
integer :: ierr
call MPI_BCAST( extra_nucl_coord, 3*extra_nucl_num, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr)
if (ierr /= MPI_SUCCESS) then
stop 'Unable to read nucl_coord with MPI'
endif
IRP_ENDIF
END_PROVIDER
BEGIN_PROVIDER [ double precision, extra_nucl_coord_transp, (3,extra_nucl_num) ]
implicit none
BEGIN_DOC
! Transposed array of extra_nucl_coord
END_DOC
integer :: i, k
extra_nucl_coord_transp = 0.d0
do i=1,extra_nucl_num
extra_nucl_coord_transp(1,i) = extra_nucl_coord(i,1)
extra_nucl_coord_transp(2,i) = extra_nucl_coord(i,2)
extra_nucl_coord_transp(3,i) = extra_nucl_coord(i,3)
enddo
END_PROVIDER
BEGIN_PROVIDER [ double precision, extra_center_of_mass, (3) ]
implicit none
BEGIN_DOC
! Center of mass of the molecule
END_DOC
integer :: i,j
double precision :: s
extra_center_of_mass(:) = 0.d0
s = 0.d0
do i=1,extra_nucl_num
do j=1,3
extra_center_of_mass(j) += extra_nucl_coord(i,j)* element_mass(int(extra_nucl_charge(i)))
enddo
s += element_mass(int(extra_nucl_charge(i)))
enddo
s = 1.d0/s
extra_center_of_mass(:) = extra_center_of_mass(:)*s
END_PROVIDER

View File

@ -17,7 +17,7 @@ Our goals:
We want to create a plugin to do the following things:
1) print out one- and two-electron integrals on the AO/MO basis,
2) creates two providers which manipulate these objects,
2) create two providers which manipulate these objects,
3) print out these providers.

View File

@ -1,4 +1,4 @@
program cas_based_on_top_density
program cas_based_on_top
implicit none
BEGIN_DOC
! TODO : Small example to use the different quantities in this plugin

View File

@ -1,4 +1,4 @@
program print_2rdm
program get_energy
implicit none
BEGIN_DOC
! get the active part of the bielectronic energy on a given wave function.

View File

@ -1,4 +1,4 @@
program projected_operators
program test_proj_op
implicit none
BEGIN_DOC
! TODO

View File

@ -1,4 +1,4 @@
program molden_detachment_attachment
program attachement_orb
implicit none
read_wf=.True.
touch read_wf

View File

@ -1,4 +1,4 @@
program fcidump
program fcidump_pyscf
implicit none
BEGIN_DOC
! Produce a regular `FCIDUMP` file from the |MOs| stored in the |EZFIO|

View File

@ -1,3 +0,0 @@
program hcore_guess_prog
call hcore_guess
end

View File

@ -1,5 +0,0 @@
program pouet
implicit none
call huckel_guess
end

View File

@ -1,4 +1,4 @@
program sort_wf
program print_sorted_wf_coef
implicit none
read_wf =.True.
call routine

View File

@ -1,4 +1,4 @@
program save_natorb
program save_natorb_no_ov_rot
implicit none
BEGIN_DOC
! Save natural |MOs| into the |EZFIO|.

View File

@ -1,4 +1,4 @@
program save_natorb
program save_natorb_no_ref
implicit none
BEGIN_DOC
! Save natural |MOs| into the |EZFIO|.

View File

@ -1,4 +1,4 @@
program import_integrals_ao
program import_trexio_integrals
use trexio
implicit none
integer(trexio_t) :: f ! TREXIO file handle