9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-06 03:33:30 +01:00
qp2/docs/source/modules/determinants.rst

8469 lines
174 KiB
ReStructuredText
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. _module_determinants:
.. program:: determinants
.. default-role:: option
============
determinants
============
Contains everything for the computation of the Hamiltonian matrix elements in the basis of orthogonal Slater determinants built on a restricted spin-orbitals basis.
The main providers for this module are:
* :option:`determinants n_states`: number of states to be computed
* :c:data:`psi_det`: list of determinants in the wave function used in many routines/providers of the |QP|.
* :c:data:`psi_coef`: list of coefficients, for all :option:`determinants n_states` states, and all determinants.
The main routines for this module are:
* :c:func:`i_H_j`: computes the Hamiltonian matrix element between two arbitrary Slater determinants.
* :c:func:`i_H_j_s2`: computes the Hamiltonian and (|S^2|) matrix element between two arbitrary Slater determinants.
* :c:func:`i_H_j_verbose`: returns the decomposition in terms of one- and two-body components of the Hamiltonian matrix elements between two arbitrary Slater determinants. Also return the fermionic phase factor.
* :c:func:`i_H_psi`: computes the Hamiltonian matrix element between an arbitrary Slater determinant and a wave function composed of a sum of arbitrary Slater determinants.
For an example of how to use these routines and providers, take a look at :file:`example.irp.f`.
EZFIO parameters
----------------
.. option:: n_det_max
Maximum number of determinants in the wave function
Default: 1000000
.. option:: n_det_print_wf
Maximum number of determinants to be printed with the program print_wf
Default: 10000
.. option:: n_states
Number of states to consider
Default: 1
.. option:: read_wf
If |true|, read the wave function from the |EZFIO| file
Default: False
.. option:: pruning
If p>0., remove p*Ndet determinants at every iteration
Default: 0.
.. option:: s2_eig
Force the wave function to be an eigenfunction of |S^2|
Default: True
.. option:: weight_one_e_dm
Weight used in the calculation of the one-electron density matrix. 0: 1./(c_0^2), 1: 1/N_states, 2: input state-average weight, 3: 1/(Norm_L3(Psi))
Default: 2
.. option:: weight_selection
Weight used in the selection. 0: input state-average weight, 1: 1./(c_0^2), 2: rPT2 matching, 3: variance matching, 4: variance and rPT2 matching, 5: variance minimization and matching, 6: CI coefficients
Default: 2
.. option:: threshold_generators
Thresholds on generators (fraction of the square of the norm)
Default: 0.999
.. option:: n_int
Number of integers required to represent bitstrings (set in module :ref:`module_bitmask`)
.. option:: bit_kind
(set in module :ref:`module_bitmask`)
.. option:: mo_label
Label of the |MOs| on which the determinants are expressed
.. option:: n_det
Number of determinants in the current wave function
.. option:: n_det_qp_edit
Number of determinants to print in qp_edit
.. option:: psi_coef
Coefficients of the wave function
.. option:: psi_det
Determinants of the variational space
.. option:: psi_coef_qp_edit
Coefficients of the wave function
.. option:: psi_det_qp_edit
Determinants of the variational space
.. option:: expected_s2
Expected value of |S^2|
.. option:: target_energy
Energy that should be obtained when truncating the wave function (optional)
Default: 0.
.. option:: state_average_weight
Weight of the states in state-average calculations.
.. option:: selection_factor
f such that the number of determinants to add is f * N_det * sqrt(N_states)
Default: 1.
.. option:: thresh_sym
Thresholds to check if a determinant is connected with HF
Default: 1.e-15
.. option:: pseudo_sym
If |true|, discard any Slater determinants with an interaction smaller than thresh_sym with HF.
Default: False
Providers
---------
.. c:var:: abs_psi_coef_max
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_coef_max (N_states)
double precision, allocatable :: psi_coef_min (N_states)
double precision, allocatable :: abs_psi_coef_max (N_states)
double precision, allocatable :: abs_psi_coef_min (N_states)
Max and min values of the coefficients
Needs:
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_states`
* :c:data:`psi_coef`
.. c:var:: abs_psi_coef_min
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_coef_max (N_states)
double precision, allocatable :: psi_coef_min (N_states)
double precision, allocatable :: abs_psi_coef_max (N_states)
double precision, allocatable :: abs_psi_coef_min (N_states)
Max and min values of the coefficients
Needs:
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_states`
* :c:data:`psi_coef`
.. c:var:: barycentric_electronic_energy
File : :file:`determinants/energy.irp.f`
.. code:: fortran
double precision, allocatable :: barycentric_electronic_energy (N_states)
:math:`E_n = \sum_i {c_i^{(n)}}^2 H_{ii}`
Needs:
.. hlist::
:columns: 3
* :c:data:`diagonal_h_matrix_on_psi_det`
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_coef`
.. c:var:: c0_weight
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: c0_weight (N_states)
Weight of the states in the selection : :math:`\frac{1}{c_0^2}` .
Needs:
.. hlist::
:columns: 3
* :c:data:`n_states`
* :c:data:`psi_coef`
Needed by:
.. hlist::
:columns: 3
* :c:data:`state_average_weight`
.. c:var:: det_alpha_norm
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: det_alpha_norm (N_det_alpha_unique)
double precision, allocatable :: det_beta_norm (N_det_beta_unique)
Norm of the :math:`\alpha` and :math:`\beta` spin determinants in the wave function:
:math:`||D_\alpha||_i = \sum_j C_{ij}^2`
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
* :c:data:`state_average_weight`
.. c:var:: det_beta_norm
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: det_alpha_norm (N_det_alpha_unique)
double precision, allocatable :: det_beta_norm (N_det_beta_unique)
Norm of the :math:`\alpha` and :math:`\beta` spin determinants in the wave function:
:math:`||D_\alpha||_i = \sum_j C_{ij}^2`
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
* :c:data:`state_average_weight`
.. c:var:: det_to_occ_pattern
File : :file:`determinants/occ_pattern.irp.f`
.. code:: fortran
integer, allocatable :: det_to_occ_pattern (N_det)
Returns the index of the occupation pattern for each determinant
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det`
* :c:data:`psi_occ_pattern`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pruned`
* :c:data:`psi_occ_pattern_hii`
* :c:data:`weight_occ_pattern`
* :c:data:`weight_occ_pattern_average`
.. c:var:: diagonal_h_matrix_on_psi_det
File : :file:`determinants/energy.irp.f`
.. code:: fortran
double precision, allocatable :: diagonal_h_matrix_on_psi_det (N_det)
Diagonal of the Hamiltonian ordered as psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`elec_num`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det`
* :c:data:`ref_bitmask`
* :c:data:`ref_bitmask_energy`
Needed by:
.. hlist::
:columns: 3
* :c:data:`barycentric_electronic_energy`
.. c:var:: double_exc_bitmask
File : :file:`determinants/determinants_bitmasks.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: double_exc_bitmask (N_int,4,N_double_exc_bitmasks)
double_exc_bitmask(:,1,i) is the bitmask for holes of excitation 1
double_exc_bitmask(:,2,i) is the bitmask for particles of excitation 1
double_exc_bitmask(:,3,i) is the bitmask for holes of excitation 2
double_exc_bitmask(:,4,i) is the bitmask for particles of excitation 2
for a given couple of hole/particle excitations i.
Needs:
.. hlist::
:columns: 3
* :c:data:`hf_bitmask`
* :c:data:`n_double_exc_bitmasks`
* :c:data:`n_int`
.. c:var:: expected_s2
File : :file:`determinants/s2.irp.f`
.. code:: fortran
double precision :: expected_s2
Expected value of |S^2| : S*(S+1)
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ci_electronic_energy`
.. c:var:: fock_operator_closed_shell_ref_bitmask
File : :file:`determinants/single_excitations.irp.f`
.. code:: fortran
double precision, allocatable :: fock_operator_closed_shell_ref_bitmask (mo_num,mo_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`full_ijkl_bitmask`
* :c:data:`mo_integrals_map`
* :c:data:`mo_num`
* :c:data:`mo_one_e_integrals`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`n_int`
* :c:data:`ref_closed_shell_bitmask`
.. c:var:: fock_wee_closed_shell
File : :file:`determinants/single_excitation_two_e.irp.f`
.. code:: fortran
double precision, allocatable :: fock_wee_closed_shell (mo_num,mo_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`full_ijkl_bitmask`
* :c:data:`mo_integrals_map`
* :c:data:`mo_num`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`n_int`
* :c:data:`ref_closed_shell_bitmask`
.. c:var:: h_apply_buffer_allocated
File : :file:`determinants/h_apply.irp.f`
.. code:: fortran
logical :: h_apply_buffer_allocated
integer(omp_lock_kind), allocatable :: h_apply_buffer_lock (64,0:nproc-1)
Buffer of determinants/coefficients/perturbative energy for H_apply.
Uninitialized. Filled by H_apply subroutines.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`nproc`
.. c:var:: h_apply_buffer_lock
File : :file:`determinants/h_apply.irp.f`
.. code:: fortran
logical :: h_apply_buffer_allocated
integer(omp_lock_kind), allocatable :: h_apply_buffer_lock (64,0:nproc-1)
Buffer of determinants/coefficients/perturbative energy for H_apply.
Uninitialized. Filled by H_apply subroutines.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`nproc`
.. c:var:: h_matrix_all_dets
File : :file:`determinants/utils.irp.f`
.. code:: fortran
double precision, allocatable :: h_matrix_all_dets (N_det,N_det)
|H| matrix on the basis of the Slater determinants defined by psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`big_array_coulomb_integrals`
* :c:data:`big_array_coulomb_integrals`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_integrals_map`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ci_electronic_energy`
* :c:data:`psi_energy`
.. c:var:: h_matrix_cas
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
double precision, allocatable :: h_matrix_cas (N_det_cas,N_det_cas)
Needs:
.. hlist::
:columns: 3
* :c:data:`big_array_coulomb_integrals`
* :c:data:`big_array_coulomb_integrals`
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_integrals_map`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`n_int`
* :c:data:`psi_cas`
Needed by:
.. hlist::
:columns: 3
* :c:data:`psi_cas_energy`
* :c:data:`psi_coef_cas_diagonalized`
.. c:var:: idx_cas
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_cas (N_int,2,psi_det_size)
double precision, allocatable :: psi_cas_coef (psi_det_size,n_states)
integer, allocatable :: idx_cas (psi_det_size)
integer :: n_det_cas
|CAS| wave function, defined from the application of the |CAS| bitmask on the
determinants. idx_cas gives the indice of the |CAS| determinant in psi_det.
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`hf_bitmask`
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`h_matrix_cas`
* :c:data:`psi_cas_energy`
* :c:data:`psi_cas_sorted_bit`
* :c:data:`psi_coef_cas_diagonalized`
* :c:data:`psi_non_cas`
* :c:data:`psi_non_cas_sorted_bit`
.. c:var:: idx_non_cas
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_non_cas (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_cas_coef (psi_det_size,n_states)
integer, allocatable :: idx_non_cas (psi_det_size)
integer :: n_det_non_cas
Set of determinants which are not part of the |CAS|, defined from the application
of the |CAS| bitmask on the determinants.
idx_non_cas gives the indice of the determinant in psi_det.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_cas`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`psi_non_cas_sorted_bit`
.. c:var:: max_degree_exc
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
integer :: max_degree_exc
Maximum degree of excitation in the wave function with respect to the Hartree-Fock
determinant.
Needs:
.. hlist::
:columns: 3
* :c:data:`hf_bitmask`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det`
.. c:var:: n_det
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
integer :: n_det
Number of determinants in the wave function
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mo_label`
* :c:data:`mpi_master`
* :c:data:`nproc`
* :c:data:`read_wf`
Needed by:
.. hlist::
:columns: 3
* :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:`barycentric_electronic_energy`
* :c:data:`ci_electronic_energy`
* :c:data:`ci_energy`
* :c:data:`det_alpha_norm`
* :c:data:`det_to_occ_pattern`
* :c:data:`diag_algorithm`
* :c:data:`diagonal_h_matrix_on_psi_det`
* :c:data:`dressed_column_idx`
* :c:data:`dressing_column_h`
* :c:data:`h_apply_buffer_allocated`
* :c:data:`h_matrix_all_dets`
* :c:data:`max_degree_exc`
* :c:data:`n_det_qp_edit`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`pruned`
* :c:data:`psi_average_norm_contrib`
* :c:data:`psi_bilinear_matrix`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`psi_bilinear_matrix_order_reverse`
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_cas`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_alpha`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta`
* :c:data:`psi_det_beta_unique`
* :c:data:`psi_det_hii`
* :c:data:`psi_det_sorted`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_energy`
* :c:data:`psi_energy_two_e`
* :c:data:`psi_non_cas`
* :c:data:`psi_occ_pattern`
* :c:data:`psi_occ_pattern_hii`
* :c:data:`s2_matrix_all_dets`
* :c:data:`s2_values`
* :c:data:`state_av_act_2_rdm_aa_mo`
* :c:data:`state_av_act_2_rdm_ab_mo`
* :c:data:`state_av_act_2_rdm_bb_mo`
* :c:data:`state_av_act_2_rdm_spin_trace_mo`
* :c:data:`weight_occ_pattern`
* :c:data:`weight_occ_pattern_average`
.. c:var:: n_det_alpha_unique
File : :file:`determinants/spindeterminants.irp.f_template_144`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_alpha_unique (N_int,psi_det_size)
integer :: n_det_alpha_unique
Unique :math:`\alpha` determinants
Needs:
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det_alpha`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`det_alpha_norm`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix`
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`singles_alpha_csc`
* :c:data:`singles_alpha_csc_idx`
.. c:var:: n_det_beta_unique
File : :file:`determinants/spindeterminants.irp.f_template_144`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_beta_unique (N_int,psi_det_size)
integer :: n_det_beta_unique
Unique :math:`\beta` determinants
Needs:
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det_beta`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`det_alpha_norm`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`singles_beta_csc`
* :c:data:`singles_beta_csc_idx`
.. c:var:: n_det_cas
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_cas (N_int,2,psi_det_size)
double precision, allocatable :: psi_cas_coef (psi_det_size,n_states)
integer, allocatable :: idx_cas (psi_det_size)
integer :: n_det_cas
|CAS| wave function, defined from the application of the |CAS| bitmask on the
determinants. idx_cas gives the indice of the |CAS| determinant in psi_det.
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`hf_bitmask`
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`h_matrix_cas`
* :c:data:`psi_cas_energy`
* :c:data:`psi_cas_sorted_bit`
* :c:data:`psi_coef_cas_diagonalized`
* :c:data:`psi_non_cas`
* :c:data:`psi_non_cas_sorted_bit`
.. c:var:: n_det_non_cas
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_non_cas (N_int,2,psi_det_size)
double precision, allocatable :: psi_non_cas_coef (psi_det_size,n_states)
integer, allocatable :: idx_non_cas (psi_det_size)
integer :: n_det_non_cas
Set of determinants which are not part of the |CAS|, defined from the application
of the |CAS| bitmask on the determinants.
idx_non_cas gives the indice of the determinant in psi_det.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_cas`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`psi_non_cas_sorted_bit`
.. c:var:: n_det_qp_edit
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
integer :: n_det_qp_edit
Number of determinants to print in qp_edit
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
.. c:var:: n_double_exc_bitmasks
File : :file:`determinants/determinants_bitmasks.irp.f`
.. code:: fortran
integer :: n_double_exc_bitmasks
Number of double excitation bitmasks
Needed by:
.. hlist::
:columns: 3
* :c:data:`double_exc_bitmask`
.. c:var:: n_occ_pattern
File : :file:`determinants/occ_pattern.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_occ_pattern (N_int,2,psi_det_size)
integer :: n_occ_pattern
Array of the occ_patterns present in the wave function.
psi_occ_pattern(:,1,j) = j-th occ_pattern of the wave function : represents all the single occupations
psi_occ_pattern(:,2,j) = j-th occ_pattern of the wave function : represents all the double occupations
The occ patterns are sorted by :c:func:`occ_pattern_search_key`
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`det_to_occ_pattern`
* :c:data:`pruned`
* :c:data:`psi_occ_pattern_hii`
* :c:data:`psi_occ_pattern_sorted`
* :c:data:`weight_occ_pattern`
* :c:data:`weight_occ_pattern_average`
.. c:var:: n_single_exc_bitmasks
File : :file:`determinants/determinants_bitmasks.irp.f`
.. code:: fortran
integer :: n_single_exc_bitmasks
Number of single excitation bitmasks
Needed by:
.. hlist::
:columns: 3
* :c:data:`single_exc_bitmask`
.. c:var:: one_e_dm_ao_alpha
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_ao_alpha (ao_num,ao_num)
double precision, allocatable :: one_e_dm_ao_beta (ao_num,ao_num)
One body density matrix on the |AO| basis : :math:`\rho_{AO}(\alpha), \rho_{AO}(\beta)` .
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`one_e_dm_mo_alpha_average`
.. c:var:: one_e_dm_ao_beta
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_ao_alpha (ao_num,ao_num)
double precision, allocatable :: one_e_dm_ao_beta (ao_num,ao_num)
One body density matrix on the |AO| basis : :math:`\rho_{AO}(\alpha), \rho_{AO}(\beta)` .
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`one_e_dm_mo_alpha_average`
.. c:var:: one_e_dm_dagger_mo_spin_index
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_dagger_mo_spin_index (mo_num,mo_num,N_states,2)
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha`
.. c:var:: one_e_dm_mo
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo (mo_num,mo_num)
One-body density matrix
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`one_e_dm_mo_alpha_average`
.. c:var:: one_e_dm_mo_alpha
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_alpha (mo_num,mo_num,N_states)
double precision, allocatable :: one_e_dm_mo_beta (mo_num,mo_num,N_states)
:math:`\alpha` and :math:`\beta` one-body density matrix for each state
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_num`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :c:data:`full_occ_2_rdm_aa_mo`
* :c:data:`full_occ_2_rdm_ab_mo`
* :c:data:`full_occ_2_rdm_bb_mo`
* :c:data:`full_occ_2_rdm_spin_trace_mo`
* :c:data:`one_e_dm_dagger_mo_spin_index`
* :c:data:`one_e_dm_mo_alpha_average`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
* :c:data:`one_e_dm_mo_diff`
* :c:data:`one_e_dm_mo_spin_index`
* :c:data:`psi_energy_h_core`
.. c:var:: one_e_dm_mo_alpha_average
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_alpha_average (mo_num,mo_num)
double precision, allocatable :: one_e_dm_mo_beta_average (mo_num,mo_num)
:math:`\alpha` and :math:`\beta` one-body density matrix for each state
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`state_average_weight`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_ao_alpha`
* :c:data:`one_e_dm_mo`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
* :c:data:`one_e_spin_density_mo`
* :c:data:`state_av_full_occ_2_rdm_aa_mo`
* :c:data:`state_av_full_occ_2_rdm_ab_mo`
* :c:data:`state_av_full_occ_2_rdm_bb_mo`
* :c:data:`state_av_full_occ_2_rdm_spin_trace_mo`
.. c:var:: one_e_dm_mo_beta
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_alpha (mo_num,mo_num,N_states)
double precision, allocatable :: one_e_dm_mo_beta (mo_num,mo_num,N_states)
:math:`\alpha` and :math:`\beta` one-body density matrix for each state
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`mo_num`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :c:data:`full_occ_2_rdm_aa_mo`
* :c:data:`full_occ_2_rdm_ab_mo`
* :c:data:`full_occ_2_rdm_bb_mo`
* :c:data:`full_occ_2_rdm_spin_trace_mo`
* :c:data:`one_e_dm_dagger_mo_spin_index`
* :c:data:`one_e_dm_mo_alpha_average`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
* :c:data:`one_e_dm_mo_diff`
* :c:data:`one_e_dm_mo_spin_index`
* :c:data:`psi_energy_h_core`
.. c:var:: one_e_dm_mo_beta_average
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_alpha_average (mo_num,mo_num)
double precision, allocatable :: one_e_dm_mo_beta_average (mo_num,mo_num)
:math:`\alpha` and :math:`\beta` one-body density matrix for each state
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`state_average_weight`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_ao_alpha`
* :c:data:`one_e_dm_mo`
* :c:data:`one_e_dm_mo_alpha_for_dft`
* :c:data:`one_e_dm_mo_beta_for_dft`
* :c:data:`one_e_spin_density_mo`
* :c:data:`state_av_full_occ_2_rdm_aa_mo`
* :c:data:`state_av_full_occ_2_rdm_ab_mo`
* :c:data:`state_av_full_occ_2_rdm_bb_mo`
* :c:data:`state_av_full_occ_2_rdm_spin_trace_mo`
.. c:var:: one_e_dm_mo_diff
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_diff (mo_num,mo_num,2:N_states)
Difference of the one-body density matrix with respect to the ground state
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha`
.. c:var:: one_e_dm_mo_spin_index
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_dm_mo_spin_index (mo_num,mo_num,N_states,2)
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`n_states`
* :c:data:`one_e_dm_mo_alpha`
.. c:var:: one_e_spin_density_ao
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_spin_density_ao (ao_num,ao_num)
One body spin density matrix on the |AO| basis : :math:`\rho_{AO}(\alpha) - \rho_{AO}(\beta)`
Needs:
.. hlist::
:columns: 3
* :c:data:`ao_num`
* :c:data:`mo_coef`
* :c:data:`mo_num`
* :c:data:`one_e_spin_density_mo`
.. c:var:: one_e_spin_density_mo
File : :file:`determinants/density_matrix.irp.f`
.. code:: fortran
double precision, allocatable :: one_e_spin_density_mo (mo_num,mo_num)
:math:`\rho(\alpha) - \rho(\beta)`
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_num`
* :c:data:`one_e_dm_mo_alpha_average`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_spin_density_ao`
.. c:var:: pruned
File : :file:`determinants/prune_wf.irp.f`
.. code:: fortran
logical, allocatable :: pruned (N_det)
True if determinant is removed by pruning
Needs:
.. hlist::
:columns: 3
* :c:data:`det_to_occ_pattern`
* :c:data:`n_det`
* :c:data:`pruning`
* :c:data:`psi_average_norm_contrib`
* :c:data:`psi_det_sorted`
* :c:data:`psi_occ_pattern`
* :c:data:`psi_occ_pattern_sorted`
* :c:data:`s2_eig`
.. c:var:: psi_average_norm_contrib
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_average_norm_contrib (psi_det_size)
Contribution of determinants to the state-averaged density.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det_size`
* :c:data:`state_average_weight`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pruned`
* :c:data:`psi_det_sorted`
.. c:var:: psi_average_norm_contrib_sorted
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_sorted (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted (psi_det_size,N_states)
double precision, allocatable :: psi_average_norm_contrib_sorted (psi_det_size)
integer, allocatable :: psi_det_sorted_order (psi_det_size)
Wave function sorted by determinants contribution to the norm (state-averaged)
psi_det_sorted_order(i) -> k : index in psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_average_norm_contrib`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pruned`
.. c:var:: psi_bilinear_matrix
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_bilinear_matrix (N_det_alpha_unique,N_det_beta_unique,N_states)
Coefficient matrix if the wave function is expressed in a bilinear form :
:math:`D_\alpha^\dagger.C.D_\beta`
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
.. c:var:: psi_bilinear_matrix_columns
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_bilinear_matrix_values (N_det,N_states)
integer, allocatable :: psi_bilinear_matrix_rows (N_det)
integer, allocatable :: psi_bilinear_matrix_columns (N_det)
integer, allocatable :: psi_bilinear_matrix_order (N_det)
Sparse coefficient matrix if the wave function is expressed in a bilinear form :
:math:`D_\alpha^\dagger.C.D_\beta`
Rows are :math:`\alpha` determinants and columns are :math:`\beta` .
Order refers to psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :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:`det_alpha_norm`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`psi_bilinear_matrix_order_reverse`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`state_av_act_2_rdm_aa_mo`
* :c:data:`state_av_act_2_rdm_ab_mo`
* :c:data:`state_av_act_2_rdm_bb_mo`
* :c:data:`state_av_act_2_rdm_spin_trace_mo`
.. c:var:: psi_bilinear_matrix_columns_loc
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
integer, allocatable :: psi_bilinear_matrix_columns_loc (N_det_beta_unique+1)
Sparse coefficient matrix if the wave function is expressed in a bilinear form :
:math:`D_\alpha^\dagger.C.D_\beta`
Rows are :math:`\alpha` determinants and columns are :math:`\beta` .
Order refers to :c:data:`psi_det`
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det_beta_unique`
.. c:var:: psi_bilinear_matrix_order
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_bilinear_matrix_values (N_det,N_states)
integer, allocatable :: psi_bilinear_matrix_rows (N_det)
integer, allocatable :: psi_bilinear_matrix_columns (N_det)
integer, allocatable :: psi_bilinear_matrix_order (N_det)
Sparse coefficient matrix if the wave function is expressed in a bilinear form :
:math:`D_\alpha^\dagger.C.D_\beta`
Rows are :math:`\alpha` determinants and columns are :math:`\beta` .
Order refers to psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :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:`det_alpha_norm`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`psi_bilinear_matrix_order_reverse`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`state_av_act_2_rdm_aa_mo`
* :c:data:`state_av_act_2_rdm_ab_mo`
* :c:data:`state_av_act_2_rdm_bb_mo`
* :c:data:`state_av_act_2_rdm_spin_trace_mo`
.. c:var:: psi_bilinear_matrix_order_reverse
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
integer, allocatable :: psi_bilinear_matrix_order_reverse (N_det)
Order which allows to go from :c:data:`psi_bilinear_matrix` to :c:data:`psi_det`
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`psi_bilinear_matrix_values`
Needed by:
.. hlist::
:columns: 3
* :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:`state_av_act_2_rdm_aa_mo`
* :c:data:`state_av_act_2_rdm_ab_mo`
* :c:data:`state_av_act_2_rdm_bb_mo`
* :c:data:`state_av_act_2_rdm_spin_trace_mo`
.. c:var:: psi_bilinear_matrix_order_transp_reverse
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
integer, allocatable :: psi_bilinear_matrix_order_transp_reverse (N_det)
Order which allows to go from :c:data:`psi_bilinear_matrix_order_transp` to
:c:data:`psi_bilinear_matrix`
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`psi_bilinear_matrix_transp_values`
.. c:var:: psi_bilinear_matrix_rows
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_bilinear_matrix_values (N_det,N_states)
integer, allocatable :: psi_bilinear_matrix_rows (N_det)
integer, allocatable :: psi_bilinear_matrix_columns (N_det)
integer, allocatable :: psi_bilinear_matrix_order (N_det)
Sparse coefficient matrix if the wave function is expressed in a bilinear form :
:math:`D_\alpha^\dagger.C.D_\beta`
Rows are :math:`\alpha` determinants and columns are :math:`\beta` .
Order refers to psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :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:`det_alpha_norm`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`psi_bilinear_matrix_order_reverse`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`state_av_act_2_rdm_aa_mo`
* :c:data:`state_av_act_2_rdm_ab_mo`
* :c:data:`state_av_act_2_rdm_bb_mo`
* :c:data:`state_av_act_2_rdm_spin_trace_mo`
.. c:var:: psi_bilinear_matrix_transp_columns
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_bilinear_matrix_transp_values (N_det,N_states)
integer, allocatable :: psi_bilinear_matrix_transp_rows (N_det)
integer, allocatable :: psi_bilinear_matrix_transp_columns (N_det)
integer, allocatable :: psi_bilinear_matrix_transp_order (N_det)
Transpose of :c:data:`psi_bilinear_matrix`
:math:`D_\beta^\dagger.C^\dagger.D_\alpha`
Rows are :math:`\alpha` determinants and columns are :math:`\beta` , but the matrix is stored in row major
format.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
.. c:var:: psi_bilinear_matrix_transp_order
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_bilinear_matrix_transp_values (N_det,N_states)
integer, allocatable :: psi_bilinear_matrix_transp_rows (N_det)
integer, allocatable :: psi_bilinear_matrix_transp_columns (N_det)
integer, allocatable :: psi_bilinear_matrix_transp_order (N_det)
Transpose of :c:data:`psi_bilinear_matrix`
:math:`D_\beta^\dagger.C^\dagger.D_\alpha`
Rows are :math:`\alpha` determinants and columns are :math:`\beta` , but the matrix is stored in row major
format.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
.. c:var:: psi_bilinear_matrix_transp_rows
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_bilinear_matrix_transp_values (N_det,N_states)
integer, allocatable :: psi_bilinear_matrix_transp_rows (N_det)
integer, allocatable :: psi_bilinear_matrix_transp_columns (N_det)
integer, allocatable :: psi_bilinear_matrix_transp_order (N_det)
Transpose of :c:data:`psi_bilinear_matrix`
:math:`D_\beta^\dagger.C^\dagger.D_\alpha`
Rows are :math:`\alpha` determinants and columns are :math:`\beta` , but the matrix is stored in row major
format.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
.. c:var:: psi_bilinear_matrix_transp_rows_loc
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
integer, allocatable :: psi_bilinear_matrix_transp_rows_loc (N_det_alpha_unique+1)
Location of the columns in the :c:data:`psi_bilinear_matrix`
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_det_alpha_unique`
.. c:var:: psi_bilinear_matrix_transp_values
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_bilinear_matrix_transp_values (N_det,N_states)
integer, allocatable :: psi_bilinear_matrix_transp_rows (N_det)
integer, allocatable :: psi_bilinear_matrix_transp_columns (N_det)
integer, allocatable :: psi_bilinear_matrix_transp_order (N_det)
Transpose of :c:data:`psi_bilinear_matrix`
:math:`D_\beta^\dagger.C^\dagger.D_\alpha`
Rows are :math:`\alpha` determinants and columns are :math:`\beta` , but the matrix is stored in row major
format.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix_order_transp_reverse`
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
.. c:var:: psi_bilinear_matrix_values
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_bilinear_matrix_values (N_det,N_states)
integer, allocatable :: psi_bilinear_matrix_rows (N_det)
integer, allocatable :: psi_bilinear_matrix_columns (N_det)
integer, allocatable :: psi_bilinear_matrix_order (N_det)
Sparse coefficient matrix if the wave function is expressed in a bilinear form :
:math:`D_\alpha^\dagger.C.D_\beta`
Rows are :math:`\alpha` determinants and columns are :math:`\beta` .
Order refers to psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_det`
* :c:data:`psi_det_alpha_unique`
* :c:data:`psi_det_beta_unique`
Needed by:
.. hlist::
:columns: 3
* :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:`det_alpha_norm`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`psi_bilinear_matrix_order_reverse`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`state_av_act_2_rdm_aa_mo`
* :c:data:`state_av_act_2_rdm_ab_mo`
* :c:data:`state_av_act_2_rdm_bb_mo`
* :c:data:`state_av_act_2_rdm_spin_trace_mo`
.. c:var:: psi_cas
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_cas (N_int,2,psi_det_size)
double precision, allocatable :: psi_cas_coef (psi_det_size,n_states)
integer, allocatable :: idx_cas (psi_det_size)
integer :: n_det_cas
|CAS| wave function, defined from the application of the |CAS| bitmask on the
determinants. idx_cas gives the indice of the |CAS| determinant in psi_det.
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`hf_bitmask`
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`h_matrix_cas`
* :c:data:`psi_cas_energy`
* :c:data:`psi_cas_sorted_bit`
* :c:data:`psi_coef_cas_diagonalized`
* :c:data:`psi_non_cas`
* :c:data:`psi_non_cas_sorted_bit`
.. c:var:: psi_cas_coef
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_cas (N_int,2,psi_det_size)
double precision, allocatable :: psi_cas_coef (psi_det_size,n_states)
integer, allocatable :: idx_cas (psi_det_size)
integer :: n_det_cas
|CAS| wave function, defined from the application of the |CAS| bitmask on the
determinants. idx_cas gives the indice of the |CAS| determinant in psi_det.
Needs:
.. hlist::
:columns: 3
* :c:data:`act_bitmask`
* :c:data:`hf_bitmask`
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`h_matrix_cas`
* :c:data:`psi_cas_energy`
* :c:data:`psi_cas_sorted_bit`
* :c:data:`psi_coef_cas_diagonalized`
* :c:data:`psi_non_cas`
* :c:data:`psi_non_cas_sorted_bit`
.. c:var:: psi_cas_coef_sorted_bit
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_cas_sorted_bit (N_int,2,psi_det_size)
double precision, allocatable :: psi_cas_coef_sorted_bit (psi_det_size,N_states)
|CAS| determinants sorted to accelerate the search of a random determinant in the wave
function.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_cas`
* :c:data:`psi_det_size`
.. c:var:: psi_cas_energy
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
double precision, allocatable :: psi_cas_energy (N_states)
Variational energy of :math:`\Psi_{CAS}` , where :math:`\Psi_{CAS} = \sum_{I \in CAS} \I \rangle \langle I | \Psi \rangle` .
Needs:
.. hlist::
:columns: 3
* :c:data:`h_matrix_cas`
* :c:data:`n_states`
* :c:data:`psi_cas`
.. c:var:: psi_cas_energy_diagonalized
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
double precision, allocatable :: psi_coef_cas_diagonalized (N_det_cas,N_states)
double precision, allocatable :: psi_cas_energy_diagonalized (N_states)
Needs:
.. hlist::
:columns: 3
* :c:data:`h_matrix_cas`
* :c:data:`n_states`
* :c:data:`psi_cas`
.. c:var:: psi_cas_sorted_bit
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_cas_sorted_bit (N_int,2,psi_det_size)
double precision, allocatable :: psi_cas_coef_sorted_bit (psi_det_size,N_states)
|CAS| determinants sorted to accelerate the search of a random determinant in the wave
function.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_cas`
* :c:data:`psi_det_size`
.. c:var:: psi_coef
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_coef (psi_det_size,N_states)
The wave function coefficients. Initialized with Hartree-Fock if the |EZFIO| file
is empty.
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mo_label`
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_states`
* :c:data:`psi_det_size`
* :c:data:`read_wf`
Needed by:
.. hlist::
:columns: 3
* :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:`barycentric_electronic_energy`
* :c:data:`c0_weight`
* :c:data:`ci_electronic_energy`
* :c:data:`dressed_column_idx`
* :c:data:`psi_average_norm_contrib`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_cas`
* :c:data:`psi_coef_max`
* :c:data:`psi_det_sorted`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_energy`
* :c:data:`psi_energy_two_e`
* :c:data:`psi_non_cas`
* :c:data:`s2_values`
* :c:data:`state_av_act_2_rdm_aa_mo`
* :c:data:`state_av_act_2_rdm_ab_mo`
* :c:data:`state_av_act_2_rdm_bb_mo`
* :c:data:`state_av_act_2_rdm_spin_trace_mo`
* :c:data:`weight_occ_pattern`
* :c:data:`weight_occ_pattern_average`
.. c:var:: psi_coef_cas_diagonalized
File : :file:`determinants/psi_cas.irp.f`
.. code:: fortran
double precision, allocatable :: psi_coef_cas_diagonalized (N_det_cas,N_states)
double precision, allocatable :: psi_cas_energy_diagonalized (N_states)
Needs:
.. hlist::
:columns: 3
* :c:data:`h_matrix_cas`
* :c:data:`n_states`
* :c:data:`psi_cas`
.. c:var:: psi_coef_max
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_coef_max (N_states)
double precision, allocatable :: psi_coef_min (N_states)
double precision, allocatable :: abs_psi_coef_max (N_states)
double precision, allocatable :: abs_psi_coef_min (N_states)
Max and min values of the coefficients
Needs:
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_states`
* :c:data:`psi_coef`
.. c:var:: psi_coef_min
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
double precision, allocatable :: psi_coef_max (N_states)
double precision, allocatable :: psi_coef_min (N_states)
double precision, allocatable :: abs_psi_coef_max (N_states)
double precision, allocatable :: abs_psi_coef_min (N_states)
Max and min values of the coefficients
Needs:
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_states`
* :c:data:`psi_coef`
.. c:var:: psi_coef_sorted
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_sorted (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted (psi_det_size,N_states)
double precision, allocatable :: psi_average_norm_contrib_sorted (psi_det_size)
integer, allocatable :: psi_det_sorted_order (psi_det_size)
Wave function sorted by determinants contribution to the norm (state-averaged)
psi_det_sorted_order(i) -> k : index in psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_average_norm_contrib`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`pruned`
.. c:var:: psi_coef_sorted_bit
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_sorted_bit (N_int,2,psi_det_size)
double precision, allocatable :: psi_coef_sorted_bit (psi_det_size,N_states)
Determinants on which we apply :math:`\langle i|H|psi \rangle` for perturbation.
They are sorted by determinants interpreted as integers. Useful
to accelerate the search of a random determinant in the wave
function.
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`n_states`
* :c:data:`psi_coef`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_bilinear_matrix_values`
.. c:var:: psi_det
File : :file:`determinants/determinants.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det (N_int,2,psi_det_size)
The determinants of the wave function. Initialized with Hartree-Fock if the |EZFIO| file
is empty.
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`hf_bitmask`
* :c:data:`mo_coef`
* :c:data:`mo_label`
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det_size`
* :c:data:`read_wf`
Needed by:
.. hlist::
:columns: 3
* :c:data:`ci_electronic_energy`
* :c:data:`det_to_occ_pattern`
* :c:data:`diagonal_h_matrix_on_psi_det`
* :c:data:`h_matrix_all_dets`
* :c:data:`max_degree_exc`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_cas`
* :c:data:`psi_det_alpha`
* :c:data:`psi_det_beta`
* :c:data:`psi_det_hii`
* :c:data:`psi_det_sorted`
* :c:data:`psi_det_sorted_bit`
* :c:data:`psi_energy`
* :c:data:`psi_energy_two_e`
* :c:data:`psi_non_cas`
* :c:data:`psi_occ_pattern`
* :c:data:`s2_matrix_all_dets`
* :c:data:`s2_values`
.. c:var:: psi_det_alpha
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_alpha (N_int,psi_det_size)
List of :math:`\alpha` determinants of psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`psi_det_alpha_unique`
.. c:var:: psi_det_alpha_unique
File : :file:`determinants/spindeterminants.irp.f_template_144`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_alpha_unique (N_int,psi_det_size)
integer :: n_det_alpha_unique
Unique :math:`\alpha` determinants
Needs:
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det_alpha`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`det_alpha_norm`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix`
* :c:data:`psi_bilinear_matrix_transp_rows_loc`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`singles_alpha_csc`
* :c:data:`singles_alpha_csc_idx`
.. c:var:: psi_det_beta
File : :file:`determinants/spindeterminants.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_beta (N_int,psi_det_size)
List of :math:`\beta` determinants of psi_det
Needs:
.. hlist::
:columns: 3
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`psi_det_beta_unique`
.. c:var:: psi_det_beta_unique
File : :file:`determinants/spindeterminants.irp.f_template_144`
.. code:: fortran
integer(bit_kind), allocatable :: psi_det_beta_unique (N_int,psi_det_size)
integer :: n_det_beta_unique
Unique :math:`\beta` determinants
Needs:
.. hlist::
:columns: 3
* :c:data:`mpi_master`
* :c:data:`n_det`
* :c:data:`n_int`
* :c:data:`psi_det_beta`
* :c:data:`psi_det_size`
Needed by:
.. hlist::
:columns: 3
* :c:data:`det_alpha_norm`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix`
* :c:data:`psi_bilinear_matrix_columns_loc`
* :c:data:`psi_bilinear_matrix_transp_values`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`singles_beta_csc`
* :c:data:`singles_beta_csc_idx`
.. c:var:: psi_det_hii
File : :file:`determinants/determinants.irp.f`