mo_two_e_ints
Here, all two-electron integrals (\(1/r_{12}\)) are computed.
As they have 4 indices and many are zero, they are stored in a map, as defined
in Utils/map_module.f90.
To fetch an AO integral, use the
get_ao_two_e_integral(i,j,k,l,ao_integrals_map) function, and
to fetch an MO integral, use
get_two_e_integral(i,j,k,l,mo_integrals_map) or
mo_two_e_integral(i,j,k,l).
The conventions are:
For AO integrals : (ik|jl) = (11|22)
For MO integrals : <ij|kl> = <12|12>
EZFIO parameters
- io_mo_cholesky
Read/Write MO Cholesky integrals from/to disk [ Write | Read | None ]
Default: None
- io_mo_two_e_integrals
Read/Write MO integrals from/to disk [ Write | Read | None ]
Default: None
- mo_integrals_cache_shift
Adjusts the size of the MO integrals cache. 2: 2KB, 3: 32KB, 4: 512KB, 5: 8MB, 6: 128MB, 7: 2GB, 8: 32GB, 9: 512GB
Default: 7
- mo_integrals_threshold
If | <ij|kl> | <
mo_integrals_thresholdthen <ij|kl> is zeroDefault: 1.e-15
- io_mo_two_e_integrals_erf
Read/Write MO integrals with the long range interaction from/to disk [ Write | Read | None ]
Default: None
Providers
- banned_excitation
File :
mo_two_e_ints/map_integrals.irp.flogical, allocatable :: banned_excitation (mo_num,mo_num) logical :: use_banned_excitation
If true, the excitation is banned in the selection. Useful with local MOs.
Needs:
mo_num
Needed by:
big_array_coulomb_integrals
core_fock_operator
mo_two_e_integrals_jj
- big_array_coulomb_integrals
File :
mo_two_e_ints/integrals_3_index.irp.fdouble precision, allocatable :: big_array_coulomb_integrals (mo_num,mo_num,mo_num) double precision, allocatable :: big_array_exchange_integrals (mo_num,mo_num,mo_num)
big_array_coulomb_integrals(j,i,k) = <ij|kj> = (ik|jj)
big_array_exchange_integrals(j,i,k) = <ij|jk> = (ij|kj)
Needs:
banned_excitationcholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cachemo_integrals_cache_min
mo_integrals_mapmo_nummo_two_e_integrals_in_map
Needed by:
coef_hf_selectorh_core_ri
h_matrix_all_detsh_matrix_cas
h_matrix_diag_all_detspsi_energy_two_e_trans
- big_array_exchange_integrals
File :
mo_two_e_ints/integrals_3_index.irp.fdouble precision, allocatable :: big_array_coulomb_integrals (mo_num,mo_num,mo_num) double precision, allocatable :: big_array_exchange_integrals (mo_num,mo_num,mo_num)
big_array_coulomb_integrals(j,i,k) = <ij|kj> = (ik|jj)
big_array_exchange_integrals(j,i,k) = <ij|jk> = (ij|kj)
Needs:
banned_excitationcholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cachemo_integrals_cache_min
mo_integrals_mapmo_nummo_two_e_integrals_in_map
Needed by:
coef_hf_selectorh_core_ri
h_matrix_all_detsh_matrix_cas
h_matrix_diag_all_detspsi_energy_two_e_trans
- cholesky_mo
File :
mo_two_e_ints/cholesky.irp.fdouble precision, allocatable :: cholesky_mo (mo_num,mo_num,cholesky_mo_num)
Cholesky vectors in MO basis
Needs:
cholesky_mo_num
cholesky_mo_transp
mo_num
- cholesky_mo_num
File :
mo_two_e_ints/cholesky.irp.finteger :: cholesky_mo_num
Number of Cholesky vectors in MO basis
Needs:
cholesky_ao_num
ezfio_work_dir
read_mo_cholesky
Needed by:
bielec_pqxx_arraybielec_pxxq_arraybig_array_coulomb_integralscholesky_mocholesky_mo_transp
cholesky_no_1_idx_transpcholesky_no_2_idx_transpcholesky_no_total_transpcholesky_semi_mo_transp_simplecore_fock_operator
fock_operator_closed_shell_ref_bitmaskfock_wee_closed_shellmo_integrals_cachemo_two_e_integrals_in_mapmo_two_e_integrals_jj
- cholesky_mo_transp
File :
mo_two_e_ints/cholesky.irp.fdouble precision, allocatable :: cholesky_mo_transp (cholesky_mo_num,mo_num,mo_num)
Cholesky vectors in MO basis. Warning: it is transposed wrt cholesky_ao:
cholesky_ao is (ao_num^2 x cholesky_ao_num)
cholesky_mo_transp is (cholesky_mo_num x mo_num^2)
Needs:
ao_numcholesky_ao_numcholesky_mo_num
ezfio_work_dirmo_coef
mo_numread_mo_cholesky
Needed by:
bielec_pqxx_arraybielec_pxxq_arraybig_array_coulomb_integralscholesky_mocholesky_no_1_idx_transp
cholesky_no_total_transpcholesky_semi_mo_transp_simplecore_fock_operatorfock_operator_closed_shell_ref_bitmask
fock_wee_closed_shellmo_integrals_cachemo_two_e_integrals_in_mapmo_two_e_integrals_jj
- cholesky_semi_mo_transp_simple
File :
mo_two_e_ints/cholesky.irp.fdouble precision, allocatable :: cholesky_semi_mo_transp_simple (cholesky_mo_num,ao_num,mo_num)
Cholesky vectors in MO basis
Needs:
ao_numcholesky_mo_num
cholesky_mo_transpmo_coef_transp
mo_num
- core_energy
File :
mo_two_e_ints/core_quantities.irp.fdouble precision :: core_energy
energy from the core : contains all core-core contributions
Needs:
list_coremo_one_e_integrals
mo_two_e_integrals_jjn_core_orb
nuclear_repulsion
- core_energy_erf
File :
mo_two_e_ints/core_quantities_erf.irp.fdouble precision :: core_energy_erf
energy from the core : contains all core-core contributionswith the erf interaction
Needs:
list_coremo_two_e_int_erf_jj
n_core_orb
nuclear_repulsion
- core_fock_operator
File :
mo_two_e_ints/core_quantities.irp.fdouble precision, allocatable :: core_fock_operator (mo_num,mo_num)
this is the contribution to the Fock operator from the core electrons
Needs:
banned_excitationcholesky_mo_numcholesky_mo_transpdo_mo_choleskylist_act
list_coremo_integrals_cachemo_integrals_cache_minmo_integrals_map
mo_nummo_two_e_integrals_in_mapn_act_orbn_core_orb
- core_fock_operator_erf
File :
mo_two_e_ints/core_quantities_erf.irp.fdouble precision, allocatable :: core_fock_operator_erf (mo_num,mo_num)
this is the contribution to the Fock operator from the core electrons with the erf interaction
Needs:
list_actlist_coremo_integrals_erf_cache
mo_integrals_erf_cache_minmo_integrals_erf_mapmo_num
mo_two_e_integrals_erf_in_mapn_act_orbn_core_orb
- do_mo_cholesky
File :
mo_two_e_ints/cholesky.irp.flogical :: do_mo_cholesky
If True, use Cholesky vectors for MO integrals
Needs:
do_ao_cholesky
Needed by:
bielec_pqxx_arraybielec_pxxq_arraybig_array_coulomb_integrals
core_fock_operatorfock_operator_closed_shell_ref_bitmaskfock_wee_closed_shell
mo_integrals_cachemo_two_e_integrals_in_mapmo_two_e_integrals_jj
- h_core_ri
File :
mo_two_e_ints/core_quantities.irp.fdouble precision, allocatable :: h_core_ri (mo_num,mo_num)
Core Hamiltonian with 3-index exchange integrals:
\(\tilde{h}{pq} = h_{pq} - \frac{1}{2}\sum_{k} g(pk,kq)\)
Needs:
big_array_coulomb_integrals
mo_num
mo_one_e_integrals
- insert_into_mo_integrals_erf_map:
File :
mo_two_e_ints/map_integrals_erf.irp.fsubroutine insert_into_mo_integrals_erf_map(n_integrals, & buffer_i, buffer_values, thr)
Create new entry into MO map, or accumulate in an existing entry
Needs:
mo_integrals_erf_map
Called by:
add_integrals_to_map_erf()
Calls:
map_update()
- insert_into_mo_integrals_map:
File :
mo_two_e_ints/map_integrals.irp.fsubroutine insert_into_mo_integrals_map(n_integrals, & buffer_i, buffer_values, thr)
Create new entry into MO map, or accumulate in an existing entry
Needs:
mo_integrals_map
Called by:
add_integrals_to_map()
Calls:
map_update()
- int_erf_3_index
File :
mo_two_e_ints/ints_erf_3_index.irp.fdouble precision, allocatable :: int_erf_3_index (mo_num,mo_num,mo_num) double precision, allocatable :: int_erf_3_index_exc (mo_num,mo_num,mo_num)
int_erf_3_index(i,j) = <ij|ij> = (ii|jj) with the erf interaction
int_erf_3_index_exc(i,j) = <ij|ji> = (ij|ij) with the erf interaction
Needs:
mo_integrals_erf_cachemo_integrals_erf_cache_min
mo_integrals_erf_mapmo_num
mo_two_e_integrals_erf_in_map
- int_erf_3_index_exc
File :
mo_two_e_ints/ints_erf_3_index.irp.fdouble precision, allocatable :: int_erf_3_index (mo_num,mo_num,mo_num) double precision, allocatable :: int_erf_3_index_exc (mo_num,mo_num,mo_num)
int_erf_3_index(i,j) = <ij|ij> = (ii|jj) with the erf interaction
int_erf_3_index_exc(i,j) = <ij|ji> = (ij|ij) with the erf interaction
Needs:
mo_integrals_erf_cachemo_integrals_erf_cache_min
mo_integrals_erf_mapmo_num
mo_two_e_integrals_erf_in_map
- mo_integrals_cache
File :
mo_two_e_ints/map_integrals.irp.fdouble precision, allocatable :: mo_integrals_cache (0_8:(1_8*mo_integrals_cache_size)**4)
Cache of MO integrals for fast access
Needs:
cholesky_mo_numcholesky_mo_transpdo_mo_cholesky
mo_integrals_cache_minmo_integrals_cache_shift
mo_integrals_mapmo_two_e_integrals_in_map
Needed by:
bieleccibig_array_coulomb_integrals
core_fock_operator
mo_two_e_integrals_jj
- mo_integrals_cache_max
File :
mo_two_e_ints/map_integrals.irp.finteger :: mo_integrals_cache_min integer :: mo_integrals_cache_max integer :: mo_integrals_cache_size
Min and max values of the MOs for which the integrals are in the cache
Needs:
elec_alpha_num
mo_integrals_cache_shift
mo_num
Needed by:
bielec_pqxx_arraybielec_pxxq_arraybig_array_coulomb_integrals
core_fock_operatorfock_operator_closed_shell_ref_bitmaskfock_wee_closed_shell
mo_integrals_cachemo_two_e_integrals_jj
- mo_integrals_cache_min
File :
mo_two_e_ints/map_integrals.irp.finteger :: mo_integrals_cache_min integer :: mo_integrals_cache_max integer :: mo_integrals_cache_size
Min and max values of the MOs for which the integrals are in the cache
Needs:
elec_alpha_num
mo_integrals_cache_shift
mo_num
Needed by:
bielec_pqxx_arraybielec_pxxq_arraybig_array_coulomb_integrals
core_fock_operatorfock_operator_closed_shell_ref_bitmaskfock_wee_closed_shell
mo_integrals_cachemo_two_e_integrals_jj
- mo_integrals_cache_size
File :
mo_two_e_ints/map_integrals.irp.finteger :: mo_integrals_cache_min integer :: mo_integrals_cache_max integer :: mo_integrals_cache_size
Min and max values of the MOs for which the integrals are in the cache
Needs:
elec_alpha_num
mo_integrals_cache_shift
mo_num
Needed by:
bielec_pqxx_arraybielec_pxxq_arraybig_array_coulomb_integrals
core_fock_operatorfock_operator_closed_shell_ref_bitmaskfock_wee_closed_shell
mo_integrals_cachemo_two_e_integrals_jj
- mo_integrals_erf_cache
File :
mo_two_e_ints/map_integrals_erf.irp.fdouble precision, allocatable :: mo_integrals_erf_cache (0:64*64*64*64)
Cache of MO integrals for fast access
Needs:
mo_integrals_erf_cache_min
mo_integrals_erf_map
mo_two_e_integrals_erf_in_map
Needed by:
core_fock_operator_erf
int_erf_3_index
mo_two_e_int_erf_jj
- mo_integrals_erf_cache_max
File :
mo_two_e_ints/map_integrals_erf.irp.finteger :: mo_integrals_erf_cache_min integer :: mo_integrals_erf_cache_max
Min and max values of the MOs for which the integrals are in the cache
Needs:
elec_alpha_num
mo_num
Needed by:
core_fock_operator_erfint_erf_3_index
mo_integrals_erf_cache
mo_two_e_int_erf_jj
- mo_integrals_erf_cache_min
File :
mo_two_e_ints/map_integrals_erf.irp.finteger :: mo_integrals_erf_cache_min integer :: mo_integrals_erf_cache_max
Min and max values of the MOs for which the integrals are in the cache
Needs:
elec_alpha_num
mo_num
Needed by:
core_fock_operator_erfint_erf_3_index
mo_integrals_erf_cache
mo_two_e_int_erf_jj
- mo_integrals_erf_map
File :
mo_two_e_ints/map_integrals_erf.irp.ftype(map_type) :: mo_integrals_erf_map
MO integrals
Needs:
mo_num
Needed by:
core_fock_operator_erfint_erf_3_index
mo_integrals_erf_cachemo_two_e_int_erf_jj
mo_two_e_integrals_erf_in_map
- mo_integrals_map
File :
mo_two_e_ints/map_integrals.irp.ftype(map_type) :: mo_integrals_map
MO integrals
Needs:
mo_num
Needed by:
bielec_pqxx_arraybielec_pxxq_arraybieleccibig_array_coulomb_integralscoef_hf_selector
core_fock_operatorfock_operator_closed_shell_ref_bitmaskfock_wee_closed_shellh_matrix_all_detsh_matrix_cas
h_matrix_diag_all_detsmo_integrals_cachemo_two_e_integrals_in_mapmo_two_e_integrals_jjpsi_energy_two_e_trans
- mo_two_e_int_erf_jj
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fdouble precision, allocatable :: mo_two_e_int_erf_jj (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_exchange (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_anti (mo_num,mo_num)
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
Needs:
mo_integrals_erf_cachemo_integrals_erf_cache_min
mo_integrals_erf_mapmo_num
mo_two_e_integrals_erf_in_map
Needed by:
core_energy_erf
- mo_two_e_int_erf_jj_anti
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fdouble precision, allocatable :: mo_two_e_int_erf_jj (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_exchange (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_anti (mo_num,mo_num)
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
Needs:
mo_integrals_erf_cachemo_integrals_erf_cache_min
mo_integrals_erf_mapmo_num
mo_two_e_integrals_erf_in_map
Needed by:
core_energy_erf
- mo_two_e_int_erf_jj_anti_from_ao
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fdouble precision, allocatable :: mo_two_e_int_erf_jj_from_ao (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_exchange_from_ao (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_anti_from_ao (mo_num,mo_num)
mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij
Needs:
ao_integrals_erf_mapao_integrals_thresholdao_num
ao_two_e_integral_erf_schwartzao_two_e_integrals_erf_in_mapdo_direct_integrals
mo_coefmo_coef_transpmo_num
- mo_two_e_int_erf_jj_exchange
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fdouble precision, allocatable :: mo_two_e_int_erf_jj (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_exchange (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_anti (mo_num,mo_num)
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
Needs:
mo_integrals_erf_cachemo_integrals_erf_cache_min
mo_integrals_erf_mapmo_num
mo_two_e_integrals_erf_in_map
Needed by:
core_energy_erf
- mo_two_e_int_erf_jj_exchange_from_ao
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fdouble precision, allocatable :: mo_two_e_int_erf_jj_from_ao (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_exchange_from_ao (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_anti_from_ao (mo_num,mo_num)
mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij
Needs:
ao_integrals_erf_mapao_integrals_thresholdao_num
ao_two_e_integral_erf_schwartzao_two_e_integrals_erf_in_mapdo_direct_integrals
mo_coefmo_coef_transpmo_num
- mo_two_e_int_erf_jj_from_ao
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fdouble precision, allocatable :: mo_two_e_int_erf_jj_from_ao (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_exchange_from_ao (mo_num,mo_num) double precision, allocatable :: mo_two_e_int_erf_jj_anti_from_ao (mo_num,mo_num)
mo_two_e_integral_jj_from_ao(i,j) = J_ij mo_two_e_integrals_jj_exchange_from_ao(i,j) = J_ij mo_two_e_integrals_jj_anti_from_ao(i,j) = J_ij - K_ij
Needs:
ao_integrals_erf_mapao_integrals_thresholdao_num
ao_two_e_integral_erf_schwartzao_two_e_integrals_erf_in_mapdo_direct_integrals
mo_coefmo_coef_transpmo_num
- mo_two_e_integrals_erf_in_map
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.flogical :: mo_two_e_integrals_erf_in_map
If True, the map of MO two-electron integrals is provided
Needs:
ao_numao_two_e_integrals_erf_in_mapao_two_e_integrals_in_mapezfio_filenamefull_ijkl_bitmask_4
mo_classmo_coefmo_coef_transpmo_integrals_erf_mapmo_integrals_threshold
mo_nummpi_mastern_intqp_max_memread_mo_two_e_integrals_erf
Needed by:
core_fock_operator_erfint_erf_3_index
mo_integrals_erf_cache
mo_two_e_int_erf_jj
- mo_two_e_integrals_in_map
File :
mo_two_e_ints/mo_bi_integrals.irp.flogical :: mo_two_e_integrals_in_map
If True, the map of MO two-electron integrals is provided
Needs:
ao_numao_two_e_integrals_in_mapcholesky_mo_numcholesky_mo_transpdo_ao_choleskydo_mo_cholesky
ezfio_filenamefull_ijkl_bitmask_4mo_classmo_coefmo_coef_transpmo_integrals_map
mo_integrals_thresholdmo_nummpi_mastern_intqp_max_memread_mo_two_e_integrals
Needed by:
act_2_rdm_aa_moact_2_rdm_ab_moact_2_rdm_bb_moact_2_rdm_spin_trace_moact_2_rdm_trans_spin_trace_mobielec_pqxx_arraybielec_pxxq_arraybielecci
big_array_coulomb_integralsci_electronic_energycoef_hf_selectorcore_fock_operatorfock_operator_closed_shell_ref_bitmaskfock_wee_closed_shellh_matrix_all_dets
h_matrix_cash_matrix_diag_all_detshessmathessmat_petermo_integrals_cachemo_two_e_integrals_jjpsi_energy_two_e_trans
- mo_two_e_integrals_jj
File :
mo_two_e_ints/mo_bi_integrals.irp.fdouble precision, allocatable :: mo_two_e_integrals_jj (mo_num,mo_num) double precision, allocatable :: mo_two_e_integrals_jj_exchange (mo_num,mo_num) double precision, allocatable :: mo_two_e_integrals_jj_anti (mo_num,mo_num)
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
Needs:
banned_excitationcholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cachemo_integrals_cache_min
mo_integrals_mapmo_nummo_two_e_integrals_in_map
Needed by:
core_energy
ref_bitmask_energy
- mo_two_e_integrals_jj_anti
File :
mo_two_e_ints/mo_bi_integrals.irp.fdouble precision, allocatable :: mo_two_e_integrals_jj (mo_num,mo_num) double precision, allocatable :: mo_two_e_integrals_jj_exchange (mo_num,mo_num) double precision, allocatable :: mo_two_e_integrals_jj_anti (mo_num,mo_num)
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
Needs:
banned_excitationcholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cachemo_integrals_cache_min
mo_integrals_mapmo_nummo_two_e_integrals_in_map
Needed by:
core_energy
ref_bitmask_energy
- mo_two_e_integrals_jj_exchange
File :
mo_two_e_ints/mo_bi_integrals.irp.fdouble precision, allocatable :: mo_two_e_integrals_jj (mo_num,mo_num) double precision, allocatable :: mo_two_e_integrals_jj_exchange (mo_num,mo_num) double precision, allocatable :: mo_two_e_integrals_jj_anti (mo_num,mo_num)
mo_two_e_integrals_jj(i,j) = J_ij mo_two_e_integrals_jj_exchange(i,j) = K_ij mo_two_e_integrals_jj_anti(i,j) = J_ij - K_ij
Needs:
banned_excitationcholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cachemo_integrals_cache_min
mo_integrals_mapmo_nummo_two_e_integrals_in_map
Needed by:
core_energy
ref_bitmask_energy
- use_banned_excitation
File :
mo_two_e_ints/map_integrals.irp.flogical, allocatable :: banned_excitation (mo_num,mo_num) logical :: use_banned_excitation
If true, the excitation is banned in the selection. Useful with local MOs.
Needs:
mo_num
Needed by:
big_array_coulomb_integrals
core_fock_operator
mo_two_e_integrals_jj
Subroutines / functions
- add_integrals_to_map:
File :
mo_two_e_ints/mo_bi_integrals.irp.fsubroutine add_integrals_to_map(mask_ijkl)
Adds integrals to the MO map according to some bitmask
Needs:
ao_numao_two_e_integrals_in_mapmo_coef
mo_coef_transpmo_integrals_mapmo_integrals_threshold
mo_numn_int
Called by:
mo_two_e_integrals_in_map
Calls:
bitstring_to_list()get_ao_two_e_integrals()
insert_into_mo_integrals_map()map_merge()
mo_two_e_integrals_index()wall_time()
- add_integrals_to_map_cholesky:
File :
mo_two_e_ints/mo_bi_integrals.irp.fsubroutine add_integrals_to_map_cholesky
Adds integrals to the MO map using Cholesky vectors
Needs:
cholesky_mo_numcholesky_mo_transp
mo_integrals_mapmo_integrals_threshold
mo_num
Called by:
mo_two_e_integrals_in_map
Calls:
dgemm()map_append()
map_sort()map_unique()
mo_two_e_integrals_index()set_multiple_levels_omp()
- add_integrals_to_map_erf:
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fsubroutine add_integrals_to_map_erf(mask_ijkl)
Adds integrals to tha MO map according to some bitmask
Needs:
ao_numao_two_e_integrals_in_mapmo_coef
mo_coef_transpmo_integrals_erf_mapmo_integrals_threshold
mo_numn_int
Called by:
mo_two_e_integrals_erf_in_map
Calls:
bitstring_to_list()bitstring_to_str()cpu_time()
get_ao_two_e_integrals_erf()insert_into_mo_integrals_erf_map()map_merge()
mo_two_e_integrals_index()wall_time()
- clear_mo_erf_map:
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fsubroutine clear_mo_erf_map
Frees the memory of the MO map
Needs:
mo_integrals_erf_map
Calls:
map_deinit()
- clear_mo_map:
File :
mo_two_e_ints/mo_bi_integrals.irp.fsubroutine clear_mo_map
Frees the memory of the MO map
Needs:
mo_integrals_map
Called by:
run_orb_opt_trust_v2()
update_parameters()
Calls:
map_deinit()
- dump_mo_integrals:
File :
mo_two_e_ints/map_integrals.irp.fsubroutine dump_mo_integrals(filename)
Save to disk the MO integrals
Needs:
mo_integrals_map
mpi_master
Calls:
ezfio_set_work_empty()
- four_idx_dgemm:
File :
mo_two_e_ints/mo_bi_integrals.irp.fsubroutine four_idx_dgemm
Needs:
ao_numao_two_e_integrals_in_map
mo_coefmo_integrals_map
mo_integrals_thresholdmo_num
Called by:
mo_two_e_integrals_in_map
Calls:
dgemm()get_ao_two_e_integrals()
map_append()map_sort()
map_unique()mo_two_e_integrals_index()
- four_idx_dgemm_erf:
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fsubroutine four_idx_dgemm_erf
Needs:
ao_nummo_coef
mo_integrals_erf_mapmo_integrals_threshold
mo_num
Called by:
mo_two_e_integrals_erf_in_map
Calls:
dgemm()get_ao_two_e_integrals_erf()
map_append()map_sort()
map_unique()mo_two_e_integrals_index()
- get_mo_erf_map_size:
File :
mo_two_e_ints/map_integrals_erf.irp.finteger*8 function get_mo_erf_map_size()
Returns the number of elements in the MO map
Needs:
mo_integrals_erf_map
- get_mo_map_size:
File :
mo_two_e_ints/map_integrals.irp.finteger*8 function get_mo_map_size()
Return the number of elements in the MO map
Needs:
mo_integrals_map
- get_mo_two_e_integral_erf:
File :
mo_two_e_ints/map_integrals_erf.irp.fdouble precision function get_mo_two_e_integral_erf(i,j,k,l,map)
Returns one integral $langle ij|kl rangle$ in the MO basis
Needs:
mo_integrals_erf_cache
mo_integrals_erf_cache_min
mo_two_e_integrals_erf_in_map
Calls:
map_get()
two_e_integrals_index()
- get_mo_two_e_integrals:
File :
mo_two_e_ints/map_integrals.irp.fsubroutine get_mo_two_e_integrals(j,k,l,sze,out_val,map)
Returns multiple integrals <ij|kl> in the MO basis, all i for j,k,l fixed.
Needs:
banned_excitationcholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cachemo_integrals_cache_min
mo_nummo_two_e_integrals_in_map
Called by:
get_d0()get_d1()
get_mo_two_e_integrals_i1j1()
get_mo_two_e_integrals_ij()
Calls:
dgemv()
get_mo_two_e_integrals_cache()
map_get()
- get_mo_two_e_integrals_cache:
File :
mo_two_e_ints/map_integrals.irp.fsubroutine get_mo_two_e_integrals_cache(j,k,l,sze,out_val)
Returns multiple integrals <ij|kl> in the MO basis, all i for j,k,l fixed, all integrals from the cache
Needs:
mo_integrals_cache
mo_integrals_cache_min
mo_integrals_cache_shift
Called by:
get_mo_two_e_integrals()
get_mo_two_e_integrals_i1j1()
get_mo_two_e_integrals_ij()
- get_mo_two_e_integrals_coulomb_ii:
File :
mo_two_e_ints/map_integrals.irp.fsubroutine get_mo_two_e_integrals_coulomb_ii(k,l,sze,out_val,map)
Returns multiple integrals <ki|li> k(1)i(2) 1/r12 l(1)i(2) :: out_val(i1) for k,l fixed.
Needs:
cholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cache_min
mo_nummo_two_e_integrals_in_map
Called by:
fock_operator_closed_shell_ref_bitmask
fock_wee_closed_shell
Calls:
dgemv()
- get_mo_two_e_integrals_erf:
File :
mo_two_e_ints/map_integrals_erf.irp.fsubroutine get_mo_two_e_integrals_erf(j,k,l,sze,out_val,map)
Returns multiple integrals $langle ij|kl rangle$ in the MO basis, all i for j,k,l fixed.
Needs:
mo_two_e_integrals_erf_in_map
Calls:
map_get_many()
two_e_integrals_index()
- get_mo_two_e_integrals_erf_coulomb_ii:
File :
mo_two_e_ints/map_integrals_erf.irp.fsubroutine get_mo_two_e_integrals_erf_coulomb_ii(k,l,sze,out_val,map)
Returns multiple integrals $langle ki|li rangle$
k(1)i(2) 1/r12 l(1)i(2) :: out_val(i1) for k,l fixed.
Needs:
mo_two_e_integrals_erf_in_map
Calls:
map_get_many()
two_e_integrals_index()
- get_mo_two_e_integrals_erf_exch_ii:
File :
mo_two_e_ints/map_integrals_erf.irp.fsubroutine get_mo_two_e_integrals_erf_exch_ii(k,l,sze,out_val,map)
Returns multiple integrals $langle ki|il rangle$
$int k(1)i(2) frac{1}{r_{12}} i(1)l(2)$ :: out_val(i1) for k,l fixed.
Needs:
mo_two_e_integrals_erf_in_map
Calls:
map_get_many()
two_e_integrals_index()
- get_mo_two_e_integrals_erf_i1j1:
File :
mo_two_e_ints/map_integrals_erf.irp.fsubroutine get_mo_two_e_integrals_erf_i1j1(k,l,sze,out_array,map)
Returns multiple integrals $langle ik|jl rangle$ in the MO basis, all $int i(1)j(1) frac{erf(mu * r_{12})}{r_{12}} k(2)l(2)$ i, j for k,l fixed.
Needs:
mo_integrals_erf_map
mo_two_e_integrals_erf_in_map
Calls:
i2sort()i8sort()
isort()map_get_many()
two_e_integrals_index()
- get_mo_two_e_integrals_erf_ij:
File :
mo_two_e_ints/map_integrals_erf.irp.fsubroutine get_mo_two_e_integrals_erf_ij(k,l,sze,out_array,map)
Returns multiple integrals $langle ij|kl rangle$ in the MO basis, all $int i(1)j(2) frac{1}{r_{12}} k(1)l(2)$ i, j for k,l fixed.
Needs:
mo_integrals_erf_map
mo_two_e_integrals_erf_in_map
Calls:
i2sort()i8sort()
isort()map_get_many()
two_e_integrals_index()
- get_mo_two_e_integrals_exch_ii:
File :
mo_two_e_ints/map_integrals.irp.fsubroutine get_mo_two_e_integrals_exch_ii(k,l,sze,out_val,map)
Returns multiple integrals <ki|il> k(1)i(2) 1/r12 i(1)l(2) :: out_val(i1) for k,l fixed.
Needs:
cholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cache_min
mo_nummo_two_e_integrals_in_map
Called by:
fock_operator_closed_shell_ref_bitmask
fock_wee_closed_shell
- get_mo_two_e_integrals_i1j1:
File :
mo_two_e_ints/map_integrals.irp.fsubroutine get_mo_two_e_integrals_i1j1(k,l,sze,out_array,map)
Returns multiple integrals <ik|jl> in the MO basis, all i(1)j(1) 1/r12 k(2)l(2) i, j for k,l fixed.
Needs:
cholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cache_min
mo_nummo_two_e_integrals_in_map
Called by:
bielec_pqxx_array
Calls:
dgemv()
get_mo_two_e_integrals()
get_mo_two_e_integrals_cache()
- get_mo_two_e_integrals_ij:
File :
mo_two_e_ints/map_integrals.irp.fsubroutine get_mo_two_e_integrals_ij(k,l,sze,out_array,map)
Returns multiple integrals <ij|kl> in the MO basis, all i(1)j(2) 1/r12 k(1)l(2) i, j for k,l fixed.
Needs:
cholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cache_min
mo_num
Called by:
bielec_pxxq_array
Calls:
dgemm()
get_mo_two_e_integrals()
get_mo_two_e_integrals_cache()
- get_two_e_integral:
File :
mo_two_e_ints/map_integrals.irp.fdouble precision function get_two_e_integral(i,j,k,l,map)
Returns one integral <ij|kl> in the MO basis
Needs:
banned_excitationcholesky_mo_numcholesky_mo_transp
do_mo_choleskymo_integrals_cache
mo_integrals_cache_minmo_two_e_integrals_in_map
Calls:
map_get()
two_e_integrals_index()
- get_two_e_integral_cache:
File :
mo_two_e_ints/map_integrals.irp.fdouble precision function get_two_e_integral_cache(i,j,k,l)
Returns one integral <ij|kl> in the MO basis taken from the cache
Needs:
mo_integrals_cache
mo_integrals_cache_min
mo_integrals_cache_shift
- load_mo_integrals:
File :
mo_two_e_ints/map_integrals.irp.finteger function load_mo_integrals(filename)
Read from disk the MO integrals
Needs:
mo_integrals_map
Calls:
cache_map_reallocate()lock_io()
map_deinit()map_sort()
unlock_io()
- load_mo_integrals_erf:
File :
mo_two_e_ints/map_integrals_erf.irp.finteger function load_mo_integrals_erf(filename)
Read from disk the MO erf integrals
Needs:
mo_integrals_erf_map
Calls:
cache_map_reallocate()
map_deinit()
map_sort()
- mo_two_e_integral:
File :
mo_two_e_ints/map_integrals.irp.fdouble precision function mo_two_e_integral(i,j,k,l)
Returns one integral <ij|kl> in the MO basis
Needs:
mo_integrals_cache
mo_integrals_map
mo_two_e_integrals_in_map
- mo_two_e_integral_erf:
File :
mo_two_e_ints/map_integrals_erf.irp.fdouble precision function mo_two_e_integral_erf(i,j,k,l)
Returns one integral $langle ij|kl rangle$ in the MO basis
Needs:
mo_integrals_erf_cache
mo_integrals_erf_map
mo_two_e_integrals_erf_in_map
- mo_two_e_integrals_erf_index:
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fsubroutine mo_two_e_integrals_erf_index(i,j,k,l,i1)
Computes an unique index for i,j,k,l integrals
- mo_two_e_integrals_index:
File :
mo_two_e_ints/mo_bi_integrals.irp.fsubroutine mo_two_e_integrals_index(i,j,k,l,i1)
Computes an unique index for i,j,k,l integrals
Called by:
add_integrals_to_map()add_integrals_to_map_cholesky()
add_integrals_to_map_erf()four_idx_dgemm()
four_idx_dgemm_erf()
- provide_all_mo_integrals_erf:
File :
mo_two_e_ints/mo_bi_integrals_erf.irp.fsubroutine provide_all_mo_integrals_erf
Needs:
mo_integrals_erf_mapmo_two_e_int_erf_jj
mo_two_e_int_erf_jjmo_two_e_int_erf_jj
mo_two_e_integrals_erf_in_map
- save_erf_two_e_integrals_mo:
File :
mo_two_e_ints/routines_save_integrals_erf.irp.fsubroutine save_erf_two_e_integrals_mo
Needs:
ezfio_filename
mo_integrals_erf_map
mo_two_e_integrals_erf_in_map
Calls:
ezfio_set_mo_two_e_ints_io_mo_two_e_integrals_erf()
ezfio_set_work_empty()
map_save_to_disk()
- save_erf_two_e_ints_mo_into_ints_mo:
File :
mo_two_e_ints/routines_save_integrals_erf.irp.fsubroutine save_erf_two_e_ints_mo_into_ints_mo
Needs:
ezfio_filename
mo_integrals_erf_map
mo_two_e_integrals_erf_in_map
Calls:
ezfio_set_mo_two_e_ints_io_mo_two_e_integrals()
ezfio_set_work_empty()
map_save_to_disk()