selectors_utils

Helper functions for selectors.

Providers

coef_hf_selector

File : selectors_utils/e_corr_selectors.irp.f

double precision        :: coef_hf_selector
double precision        :: inv_selectors_coef_hf
double precision        :: inv_selectors_coef_hf_squared
double precision, allocatable   :: e_corr_per_selectors (N_det_selectors)
double precision, allocatable   :: i_h_hf_per_selectors (N_det_selectors)
double precision, allocatable   :: delta_e_per_selector (N_det_selectors)
double precision        :: e_corr_double_only
double precision        :: e_corr_second_order

Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.

E_corr_per_selectors(i) = \(\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)\) if \(| D_i \rangle\) is a double excitation.

E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation

coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants

Needs:

  • big_array_coulomb_integrals

  • big_array_coulomb_integrals

  • exc_degree_per_selectors

  • mo_integrals_map

  • mo_two_e_integrals_in_map

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

  • ref_bitmask_energy

delta_e_per_selector

File : selectors_utils/e_corr_selectors.irp.f

double precision        :: coef_hf_selector
double precision        :: inv_selectors_coef_hf
double precision        :: inv_selectors_coef_hf_squared
double precision, allocatable   :: e_corr_per_selectors (N_det_selectors)
double precision, allocatable   :: i_h_hf_per_selectors (N_det_selectors)
double precision, allocatable   :: delta_e_per_selector (N_det_selectors)
double precision        :: e_corr_double_only
double precision        :: e_corr_second_order

Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.

E_corr_per_selectors(i) = \(\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)\) if \(| D_i \rangle\) is a double excitation.

E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation

coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants

Needs:

  • big_array_coulomb_integrals

  • big_array_coulomb_integrals

  • exc_degree_per_selectors

  • mo_integrals_map

  • mo_two_e_integrals_in_map

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

  • ref_bitmask_energy

double_index_selectors

File : selectors_utils/e_corr_selectors.irp.f

integer, allocatable    :: exc_degree_per_selectors     (N_det_selectors)
integer, allocatable    :: double_index_selectors       (N_det_selectors)
integer :: n_double_selectors

Degree of excitation respect to Hartree Fock for the wave function for the all the selectors determinants.

double_index_selectors = list of the index of the double excitations

n_double_selectors = number of double excitations in the selectors determinants

Needs:

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

Needed by:

  • coef_hf_selector

e_corr_double_only

File : selectors_utils/e_corr_selectors.irp.f

double precision        :: coef_hf_selector
double precision        :: inv_selectors_coef_hf
double precision        :: inv_selectors_coef_hf_squared
double precision, allocatable   :: e_corr_per_selectors (N_det_selectors)
double precision, allocatable   :: i_h_hf_per_selectors (N_det_selectors)
double precision, allocatable   :: delta_e_per_selector (N_det_selectors)
double precision        :: e_corr_double_only
double precision        :: e_corr_second_order

Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.

E_corr_per_selectors(i) = \(\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)\) if \(| D_i \rangle\) is a double excitation.

E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation

coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants

Needs:

  • big_array_coulomb_integrals

  • big_array_coulomb_integrals

  • exc_degree_per_selectors

  • mo_integrals_map

  • mo_two_e_integrals_in_map

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

  • ref_bitmask_energy

e_corr_per_selectors

File : selectors_utils/e_corr_selectors.irp.f

double precision        :: coef_hf_selector
double precision        :: inv_selectors_coef_hf
double precision        :: inv_selectors_coef_hf_squared
double precision, allocatable   :: e_corr_per_selectors (N_det_selectors)
double precision, allocatable   :: i_h_hf_per_selectors (N_det_selectors)
double precision, allocatable   :: delta_e_per_selector (N_det_selectors)
double precision        :: e_corr_double_only
double precision        :: e_corr_second_order

Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.

E_corr_per_selectors(i) = \(\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)\) if \(| D_i \rangle\) is a double excitation.

E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation

coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants

Needs:

  • big_array_coulomb_integrals

  • big_array_coulomb_integrals

  • exc_degree_per_selectors

  • mo_integrals_map

  • mo_two_e_integrals_in_map

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

  • ref_bitmask_energy

e_corr_second_order

File : selectors_utils/e_corr_selectors.irp.f

double precision        :: coef_hf_selector
double precision        :: inv_selectors_coef_hf
double precision        :: inv_selectors_coef_hf_squared
double precision, allocatable   :: e_corr_per_selectors (N_det_selectors)
double precision, allocatable   :: i_h_hf_per_selectors (N_det_selectors)
double precision, allocatable   :: delta_e_per_selector (N_det_selectors)
double precision        :: e_corr_double_only
double precision        :: e_corr_second_order

Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.

E_corr_per_selectors(i) = \(\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)\) if \(| D_i \rangle\) is a double excitation.

E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation

coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants

Needs:

  • big_array_coulomb_integrals

  • big_array_coulomb_integrals

  • exc_degree_per_selectors

  • mo_integrals_map

  • mo_two_e_integrals_in_map

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

  • ref_bitmask_energy

exc_degree_per_selectors

File : selectors_utils/e_corr_selectors.irp.f

integer, allocatable    :: exc_degree_per_selectors     (N_det_selectors)
integer, allocatable    :: double_index_selectors       (N_det_selectors)
integer :: n_double_selectors

Degree of excitation respect to Hartree Fock for the wave function for the all the selectors determinants.

double_index_selectors = list of the index of the double excitations

n_double_selectors = number of double excitations in the selectors determinants

Needs:

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

Needed by:

  • coef_hf_selector

i_h_hf_per_selectors

File : selectors_utils/e_corr_selectors.irp.f

double precision        :: coef_hf_selector
double precision        :: inv_selectors_coef_hf
double precision        :: inv_selectors_coef_hf_squared
double precision, allocatable   :: e_corr_per_selectors (N_det_selectors)
double precision, allocatable   :: i_h_hf_per_selectors (N_det_selectors)
double precision, allocatable   :: delta_e_per_selector (N_det_selectors)
double precision        :: e_corr_double_only
double precision        :: e_corr_second_order

Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.

E_corr_per_selectors(i) = \(\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)\) if \(| D_i \rangle\) is a double excitation.

E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation

coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants

Needs:

  • big_array_coulomb_integrals

  • big_array_coulomb_integrals

  • exc_degree_per_selectors

  • mo_integrals_map

  • mo_two_e_integrals_in_map

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

  • ref_bitmask_energy

inv_selectors_coef_hf

File : selectors_utils/e_corr_selectors.irp.f

double precision        :: coef_hf_selector
double precision        :: inv_selectors_coef_hf
double precision        :: inv_selectors_coef_hf_squared
double precision, allocatable   :: e_corr_per_selectors (N_det_selectors)
double precision, allocatable   :: i_h_hf_per_selectors (N_det_selectors)
double precision, allocatable   :: delta_e_per_selector (N_det_selectors)
double precision        :: e_corr_double_only
double precision        :: e_corr_second_order

Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.

E_corr_per_selectors(i) = \(\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)\) if \(| D_i \rangle\) is a double excitation.

E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation

coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants

Needs:

  • big_array_coulomb_integrals

  • big_array_coulomb_integrals

  • exc_degree_per_selectors

  • mo_integrals_map

  • mo_two_e_integrals_in_map

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

  • ref_bitmask_energy

inv_selectors_coef_hf_squared

File : selectors_utils/e_corr_selectors.irp.f

double precision        :: coef_hf_selector
double precision        :: inv_selectors_coef_hf
double precision        :: inv_selectors_coef_hf_squared
double precision, allocatable   :: e_corr_per_selectors (N_det_selectors)
double precision, allocatable   :: i_h_hf_per_selectors (N_det_selectors)
double precision, allocatable   :: delta_e_per_selector (N_det_selectors)
double precision        :: e_corr_double_only
double precision        :: e_corr_second_order

Correlation energy per determinant with respect to the Hartree-Fock determinant for the all the double excitations in the selectors determinants.

E_corr_per_selectors(i) = \(\langle D_i | H | \text{HF}\rangle c(D_i)/c(HF)\) if \(| D_i \rangle\) is a double excitation.

E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation

coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants

Needs:

  • big_array_coulomb_integrals

  • big_array_coulomb_integrals

  • exc_degree_per_selectors

  • mo_integrals_map

  • mo_two_e_integrals_in_map

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

  • ref_bitmask_energy

n_double_selectors

File : selectors_utils/e_corr_selectors.irp.f

integer, allocatable    :: exc_degree_per_selectors     (N_det_selectors)
integer, allocatable    :: double_index_selectors       (N_det_selectors)
integer :: n_double_selectors

Degree of excitation respect to Hartree Fock for the wave function for the all the selectors determinants.

double_index_selectors = list of the index of the double excitations

n_double_selectors = number of double excitations in the selectors determinants

Needs:

  • n_det_selectors

  • n_int

  • psi_selectors

  • ref_bitmask

Needed by:

  • coef_hf_selector

psi_selectors_coef_transp

File : selectors_utils/selectors.irp.f

double precision, allocatable   :: psi_selectors_coef_transp    (N_states,psi_selectors_size)

Transposed psi_selectors

Needs:

  • n_det_selectors

  • n_states

  • psi_selectors

  • psi_selectors_size

psi_selectors_diag_h_mat

File : selectors_utils/selectors.irp.f

double precision, allocatable   :: psi_selectors_diag_h_mat     (psi_selectors_size)

Diagonal elements of the H matrix for each selectors

Needs:

  • elec_num

  • n_det_selectors

  • n_int

  • psi_selectors

  • psi_selectors_size

  • ref_bitmask

  • ref_bitmask_energy

psi_selectors_size

File : selectors_utils/selectors.irp.f

integer :: psi_selectors_size

Needs:

  • psi_det_size

Needed by:

  • psi_selectors

  • psi_selectors_coef_transp

  • psi_selectors_diag_h_mat

Subroutines / functions

zmq_get_n_det_generators:

File : selectors_utils/zmq.irp.f_template_102

integer function zmq_get_N_det_generators(zmq_to_qp_run_socket, worker_id)

Get N_det_generators from the qp_run scheduler

Needs:

  • n_det_generators

  • zmq_state

  • mpi_master

zmq_get_n_det_selectors:

File : selectors_utils/zmq.irp.f_template_102

integer function zmq_get_N_det_selectors(zmq_to_qp_run_socket, worker_id)

Get N_det_selectors from the qp_run scheduler

Needs:

  • n_det_selectors

  • zmq_state

  • mpi_master

zmq_put_n_det_generators:

File : selectors_utils/zmq.irp.f_template_102

integer function zmq_put_N_det_generators(zmq_to_qp_run_socket,worker_id)

Put N_det_generators on the qp_run scheduler

Needs:

  • n_det_generators

  • zmq_state

zmq_put_n_det_selectors:

File : selectors_utils/zmq.irp.f_template_102

integer function zmq_put_N_det_selectors(zmq_to_qp_run_socket,worker_id)

Put N_det_selectors on the qp_run scheduler

Needs:

  • n_det_selectors

  • zmq_state