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:
determinants n_states: number of states to be computedpsi_det: list of determinants in the wave function used in many routines/providers of the Quantum Package.psi_coef: list of coefficients, for alldeterminants n_statesstates, and all determinants.
The main routines for this module are:
i_H_j(): computes the Hamiltonian matrix element between two arbitrary Slater determinants.:c:function:`i_h_j_s2`: computes the Hamiltonian and (\(\widehat{S^2}\)) matrix element between two arbitrary Slater determinants.
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.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 example.irp.f.
EZFIO parameters
- n_det_max
Maximum number of determinants in the wave function
Default: 1000000
- n_det_print_wf
Maximum number of determinants to be printed with the program print_wf
Default: 10000
- n_states
Number of states to consider
Default: 1
- pruning
If p>0., remove p*Ndet determinants at every iteration
Default: 0.
- s2_eig
Force the wave function to be an eigenfunction of \(\widehat{S^2}\)
Default: True
- 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
- weight_selection
Weight used in the selection. 0: input state-average weight, 1: 1./(c_0^2), 2: PT2 matching, 3: variance matching, 4: variance and PT2 matching, 5: variance minimization and matching, 6: CI coefficients 7: input state-average multiplied by variance and PT2 matching 8: input state-average multiplied by PT2 matching 9: input state-average multiplied by variance matching
Default: 1
- threshold_generators
Thresholds on generators (fraction of the square of the norm)
Default: 0.999
- n_int
Number of integers required to represent bitstrings (set in module bitmask module)
- bit_kind
(set in module bitmask module)
- mo_label
Label of the MOs on which the determinants are expressed
- n_det
Number of determinants in the current wave function
- n_det_qp_edit
Number of determinants to print in qp_edit
- psi_coef
Coefficients of the wave function
- psi_det
Determinants of the variational space
- psi_coef_qp_edit
Coefficients of the wave function
- psi_det_qp_edit
Determinants of the variational space
- expected_s2
Expected value of \(\widehat{S^2}\)
- target_energy
Energy that should be obtained when truncating the wave function (optional)
Default: 0.
- state_average_weight
Weight of the states in state-average calculations.
- selection_factor
f such that the number of determinants to add is f * N_det * sqrt(N_states)
Default: 1.
- thresh_sym
Thresholds to check if a determinant is connected with HF
Default: 1.e-15
- pseudo_sym
If
true, discard any Slater determinants with an interaction smaller than thresh_sym with HF.Default: False
- save_threshold
Cut-off to apply to the CI coefficients when the wave function is stored
Default: 1.e-14
Providers
- abs_psi_coef_max
File :
determinants/determinants.irp.fdouble 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:
mpi_master
n_states
psi_coef
- abs_psi_coef_min
File :
determinants/determinants.irp.fdouble 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:
mpi_master
n_states
psi_coef
- attachment_numbers_sorted
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: attachment_numbers_sorted (mo_num,N_states) double precision, allocatable :: dettachment_numbers_sorted (mo_num,N_states)
Needs:
difference_dm_eigvectmo_num
n_attachment
n_states
- attachment_orbitals
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: attachment_orbitals (ao_num,mo_num,N_states) double precision, allocatable :: dettachment_orbitals (ao_num,mo_num,N_states)
Needs:
ao_numdifference_dm_eigvect
mo_coefmo_num
n_attachmentn_states
- barycentric_electronic_energy
File :
determinants/energy.irp.fdouble precision, allocatable :: barycentric_electronic_energy (N_states)
\(E_n = \sum_i {c_i^{(n)}}^2 H_{ii}\)
Needs:
diagonal_h_matrix_on_psi_detn_det
n_states
psi_coef
Needed by:
pt2_e0_denominator
- c0_weight
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: c0_weight (N_states)
Weight of the states in the selection : \(\frac{1}{c_0^2}\) .
Needs:
n_states
psi_coef
Needed by:
selection_weight
state_average_weight
- det_alpha_norm
File :
determinants/spindeterminants.irp.fdouble precision, allocatable :: det_alpha_norm (N_det_alpha_unique) double precision, allocatable :: det_beta_norm (N_det_beta_unique)
Norm of the \(\alpha\) and \(\beta\) spin determinants in the wave function:
\(||D_\alpha||_i = \sum_j C_{ij}^2\)
Needs:
n_detn_states
psi_bilinear_matrix_valuespsi_det_alpha_unique
psi_det_beta_uniquestate_average_weight
- det_beta_norm
File :
determinants/spindeterminants.irp.fdouble precision, allocatable :: det_alpha_norm (N_det_alpha_unique) double precision, allocatable :: det_beta_norm (N_det_beta_unique)
Norm of the \(\alpha\) and \(\beta\) spin determinants in the wave function:
\(||D_\alpha||_i = \sum_j C_{ij}^2\)
Needs:
n_detn_states
psi_bilinear_matrix_valuespsi_det_alpha_unique
psi_det_beta_uniquestate_average_weight
- dettachment_numbers_sorted
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: attachment_numbers_sorted (mo_num,N_states) double precision, allocatable :: dettachment_numbers_sorted (mo_num,N_states)
Needs:
difference_dm_eigvectmo_num
n_attachment
n_states
- dettachment_orbitals
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: attachment_orbitals (ao_num,mo_num,N_states) double precision, allocatable :: dettachment_orbitals (ao_num,mo_num,N_states)
Needs:
ao_numdifference_dm_eigvect
mo_coefmo_num
n_attachmentn_states
- diagonal_h_matrix_on_psi_det
File :
determinants/energy.irp.fdouble precision, allocatable :: diagonal_h_matrix_on_psi_det (N_det)
Diagonal of the Hamiltonian ordered as psi_det
Needs:
elec_numn_det
n_intpsi_det
ref_bitmaskref_bitmask_energy
Needed by:
barycentric_electronic_energy
- difference_dm
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: difference_dm (mo_num,mo_num,N_states)
difference_dm(i,j,istate) = dm(i,j,1) - dm(i,j,istate)
Needs:
mo_num
n_states
one_e_dm_mo_alpha
Needed by:
difference_dm_eigvect
- difference_dm_eigval
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: difference_dm_eigvect (mo_num,mo_num,N_states) double precision, allocatable :: difference_dm_eigval (mo_num,N_states)
eigenvalues and eigevenctors of the difference_dm
Needs:
difference_dm
mo_num
n_states
Needed by:
attachment_numbers_sorted
attachment_orbitals
n_attachment
- difference_dm_eigvect
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: difference_dm_eigvect (mo_num,mo_num,N_states) double precision, allocatable :: difference_dm_eigval (mo_num,N_states)
eigenvalues and eigevenctors of the difference_dm
Needs:
difference_dm
mo_num
n_states
Needed by:
attachment_numbers_sorted
attachment_orbitals
n_attachment
- dominant_det
File :
determinants/determinants.irp.finteger, allocatable :: dominant_det (N_states)
Determinant with the largest weight, for each state
Needs:
n_det
n_states
psi_coef
Needed by:
dominant_cfg
- double_exc_bitmask
File :
determinants/determinants_bitmasks.irp.finteger(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:
hf_bitmask
n_double_exc_bitmasks
n_int
- expected_s2
File :
determinants/s2.irp.fdouble precision :: expected_s2
Expected value of \(\widehat{S^2}\) : S*(S+1)
Needs:
elec_alpha_num
elec_beta_num
Needed by:
ci_electronic_energy
- fock_operator_closed_shell_ref_bitmask
File :
determinants/single_excitations.irp.fdouble precision, allocatable :: fock_operator_closed_shell_ref_bitmask (mo_num,mo_num)
Needs:
cholesky_mo_numcholesky_mo_transpdo_mo_choleskyfull_ijkl_bitmask
mo_integrals_cache_minmo_integrals_mapmo_nummo_one_e_integrals
mo_two_e_integrals_in_mapn_intref_closed_shell_bitmask
- fock_wee_closed_shell
File :
determinants/single_excitation_two_e.irp.fdouble precision, allocatable :: fock_wee_closed_shell (mo_num,mo_num)
Needs:
cholesky_mo_numcholesky_mo_transpdo_mo_choleskyfull_ijkl_bitmask
mo_integrals_cache_minmo_integrals_mapmo_num
mo_two_e_integrals_in_mapn_intref_closed_shell_bitmask
- h_apply_buffer_allocated
File :
determinants/h_apply.irp.flogical :: 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:
n_detn_int
n_states
nproc
- h_apply_buffer_lock
File :
determinants/h_apply.irp.flogical :: 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:
n_detn_int
n_states
nproc
- h_matrix_all_dets
File :
determinants/utils.irp.fdouble precision, allocatable :: h_matrix_all_dets (N_det,N_det)
\(\hat H\) matrix on the basis of the Slater determinants defined by psi_det
Needs:
big_array_coulomb_integralsbig_array_coulomb_integralsmo_integrals_map
mo_two_e_integrals_in_mapn_det
n_intpsi_det
Needed by:
ci_electronic_energy
psi_energy
- h_matrix_cas
File :
determinants/psi_cas.irp.fdouble precision, allocatable :: h_matrix_cas (N_det_cas,N_det_cas)
Needs:
big_array_coulomb_integralsbig_array_coulomb_integrals
mo_integrals_mapmo_two_e_integrals_in_map
n_intpsi_cas
Needed by:
psi_cas_energy
psi_coef_cas_diagonalized
- h_matrix_diag_all_dets
File :
determinants/utils.irp.fdouble precision, allocatable :: h_matrix_diag_all_dets (N_det)
\(\hat H\) matrix on the basis of the Slater determinants defined by psi_det
Needs:
big_array_coulomb_integralsbig_array_coulomb_integralsmo_integrals_map
mo_two_e_integrals_in_mapn_det
n_intpsi_det
- idx_cas
File :
determinants/psi_cas.irp.finteger(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:
act_bitmaskhf_bitmaskmpi_master
n_detn_intn_states
psi_coefpsi_detpsi_det_size
Needed by:
h_matrix_caspsi_cas_energy
psi_cas_sorted_bitpsi_coef_cas_diagonalized
psi_non_caspsi_non_cas_sorted_bit
- idx_non_cas
File :
determinants/psi_cas.irp.finteger(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:
n_detn_intn_states
psi_caspsi_coef
psi_detpsi_det_size
Needed by:
psi_non_cas_sorted_bit
- list_attachment
File :
determinants/density_matrix.irp.finteger, allocatable :: n_attachment (N_states) integer, allocatable :: n_dettachment (N_states) integer, allocatable :: list_attachment (mo_num,N_states) integer, allocatable :: list_dettachment (mo_num,N_states)
Needs:
difference_dm_eigvect
mo_num
n_states
Needed by:
attachment_numbers_sorted
attachment_orbitals
- list_dettachment
File :
determinants/density_matrix.irp.finteger, allocatable :: n_attachment (N_states) integer, allocatable :: n_dettachment (N_states) integer, allocatable :: list_attachment (mo_num,N_states) integer, allocatable :: list_dettachment (mo_num,N_states)
Needs:
difference_dm_eigvect
mo_num
n_states
Needed by:
attachment_numbers_sorted
attachment_orbitals
- max_degree_exc
File :
determinants/determinants.irp.finteger :: max_degree_exc
Maximum degree of excitation in the wave function with respect to the Hartree-Fock determinant.
Needs:
hf_bitmaskn_det
n_int
psi_det
- n_attachment
File :
determinants/density_matrix.irp.finteger, allocatable :: n_attachment (N_states) integer, allocatable :: n_dettachment (N_states) integer, allocatable :: list_attachment (mo_num,N_states) integer, allocatable :: list_dettachment (mo_num,N_states)
Needs:
difference_dm_eigvect
mo_num
n_states
Needed by:
attachment_numbers_sorted
attachment_orbitals
- n_det
File :
determinants/determinants.irp.finteger :: n_det
Number of determinants in the wave function
Needs:
ezfio_filenamemo_label
mpi_masternproc
read_wf
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_mobarycentric_electronic_energyci_electronic_energyci_energydet_alpha_normdet_to_configurationdiag_algorithmdiagonal_h_matrix_on_psi_detdominant_cfgdominant_detdressed_column_idxdressing_column_hgradvec_oldh_apply_buffer_allocatedh_matrix_all_detsh_matrix_diag_all_detshessmat_oldmax_degree_exc
multi_s_dipole_momentn_det_generatorsn_det_qp_editn_det_selectorsone_e_dm_mo_alphaone_e_tr_dm_moone_e_tr_dm_mo_alphaoverlap_statesp0tuvx_peterprunedpsi_average_norm_contribpsi_bilinear_matrixpsi_bilinear_matrix_columns_locpsi_bilinear_matrix_order_reversepsi_bilinear_matrix_order_transp_reversepsi_bilinear_matrix_transp_rows_locpsi_bilinear_matrix_transp_valuespsi_bilinear_matrix_valuespsi_caspsi_coefpsi_configurationpsi_configuration_hii
psi_configuration_to_psi_detpsi_csf_coefpsi_detpsi_det_alphapsi_det_alpha_uniquepsi_det_betapsi_det_beta_uniquepsi_det_generatorspsi_det_hiipsi_det_sortedpsi_det_sorted_bitpsi_energypsi_energy_two_epsi_energy_two_e_transpsi_non_cass2_matrix_all_detss2_valuesstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_moweight_configurationweight_configuration_average
- n_det_alpha_unique
File :
determinants/spindeterminants.irp.f_template_144integer(bit_kind), allocatable :: psi_det_alpha_unique (N_int,psi_det_size) integer :: n_det_alpha_unique
Unique \(\alpha\) determinants
Needs:
mpi_mastern_det
n_intpsi_det_alpha
psi_det_size
Needed by:
det_alpha_normmulti_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_mo
one_e_tr_dm_mo_alphapsi_bilinear_matrixpsi_bilinear_matrix_transp_rows_locpsi_bilinear_matrix_values
singles_alpha_cscsingles_alpha_csc_idxsingles_alpha_csc_map
- n_det_beta_unique
File :
determinants/spindeterminants.irp.f_template_144integer(bit_kind), allocatable :: psi_det_beta_unique (N_int,psi_det_size) integer :: n_det_beta_unique
Unique \(\beta\) determinants
Needs:
mpi_mastern_det
n_intpsi_det_beta
psi_det_size
Needed by:
det_alpha_normmulti_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_mo
one_e_tr_dm_mo_alphapsi_bilinear_matrixpsi_bilinear_matrix_columns_locpsi_bilinear_matrix_transp_values
psi_bilinear_matrix_valuessingles_beta_cscsingles_beta_csc_idxsingles_beta_csc_map
- n_det_cas
File :
determinants/psi_cas.irp.finteger(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:
act_bitmaskhf_bitmaskmpi_master
n_detn_intn_states
psi_coefpsi_detpsi_det_size
Needed by:
h_matrix_caspsi_cas_energy
psi_cas_sorted_bitpsi_coef_cas_diagonalized
psi_non_caspsi_non_cas_sorted_bit
- n_det_non_cas
File :
determinants/psi_cas.irp.finteger(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:
n_detn_intn_states
psi_caspsi_coef
psi_detpsi_det_size
Needed by:
psi_non_cas_sorted_bit
- n_det_qp_edit
File :
determinants/determinants.irp.finteger :: n_det_qp_edit
Number of determinants to print in qp_edit
Needs:
n_det
- n_dettachment
File :
determinants/density_matrix.irp.finteger, allocatable :: n_attachment (N_states) integer, allocatable :: n_dettachment (N_states) integer, allocatable :: list_attachment (mo_num,N_states) integer, allocatable :: list_dettachment (mo_num,N_states)
Needs:
difference_dm_eigvect
mo_num
n_states
Needed by:
attachment_numbers_sorted
attachment_orbitals
- n_double_exc_bitmasks
File :
determinants/determinants_bitmasks.irp.finteger :: n_double_exc_bitmasks
Number of double excitation bitmasks
Needed by:
double_exc_bitmask
- n_single_exc_bitmasks
File :
determinants/determinants_bitmasks.irp.finteger :: n_single_exc_bitmasks
Number of single excitation bitmasks
Needed by:
single_exc_bitmask
- one_e_dm_ao
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: one_e_dm_ao (ao_num,ao_num)
one_e_dm_ao = one_e_dm_ao_alpha + one_e_dm_ao_beta
Needs:
ao_num
one_e_dm_ao_alpha
- one_e_dm_ao_alpha
File :
determinants/density_matrix.irp.fdouble 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 : \(\rho_{AO}(\alpha), \rho_{AO}(\beta)\) .
Needs:
ao_nummo_coef
mo_num
one_e_dm_mo_alpha_average
Needed by:
one_e_dm_ao
- one_e_dm_ao_alpha_nstates
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: one_e_dm_ao_alpha_nstates (ao_num,ao_num,N_states) double precision, allocatable :: one_e_dm_ao_beta_nstates (ao_num,ao_num,N_states)
One body density matrix on the AO basis : \(\rho_{AO}(\alpha), \rho_{AO}(\beta)\) .
Needs:
ao_nummo_coef
mo_numn_states
one_e_dm_mo_alpha
- one_e_dm_ao_beta
File :
determinants/density_matrix.irp.fdouble 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 : \(\rho_{AO}(\alpha), \rho_{AO}(\beta)\) .
Needs:
ao_nummo_coef
mo_num
one_e_dm_mo_alpha_average
Needed by:
one_e_dm_ao
- one_e_dm_ao_beta_nstates
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: one_e_dm_ao_alpha_nstates (ao_num,ao_num,N_states) double precision, allocatable :: one_e_dm_ao_beta_nstates (ao_num,ao_num,N_states)
One body density matrix on the AO basis : \(\rho_{AO}(\alpha), \rho_{AO}(\beta)\) .
Needs:
ao_nummo_coef
mo_numn_states
one_e_dm_mo_alpha
- one_e_dm_dagger_mo_spin_index
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: one_e_dm_dagger_mo_spin_index (mo_num,mo_num,N_states,2)
Needs:
mo_num
n_states
one_e_dm_mo_alpha
- one_e_dm_mo
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: one_e_dm_mo (mo_num,mo_num)
One-body density matrix
Needs:
mo_num
one_e_dm_mo_alpha_average
- one_e_dm_mo_alpha
File :
determinants/density_matrix.irp.fdouble 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)
\(\alpha\) and \(\beta\) one-body density matrix for each state
Needs:
elec_alpha_numelec_beta_nummo_numn_det
n_intn_statespsi_bilinear_matrix_transp_valuespsi_bilinear_matrix_values
psi_detpsi_det_alpha_uniquepsi_det_beta_unique
Needed by:
difference_dmfull_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mofull_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_mo
one_e_dm_ao_alpha_nstatesone_e_dm_dagger_mo_spin_indexone_e_dm_mo_alpha_averageone_e_dm_mo_alpha_for_dftone_e_dm_mo_beta_for_dft
one_e_dm_mo_diffone_e_dm_mo_spin_indexpsi_energy_h_corev_ne_psi_energyz_dipole_moment
- one_e_dm_mo_alpha_average
File :
determinants/density_matrix.irp.fdouble 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)
\(\alpha\) and \(\beta\) one-body density matrix for each state
Needs:
mo_numn_states
one_e_dm_mo_alpha
state_average_weight
Needed by:
d0tud0tu_alpha_aoone_e_dm_ao_alphaone_e_dm_mo
one_e_dm_mo_alpha_for_dftone_e_dm_mo_beta_for_dftone_e_spin_density_mostate_av_full_occ_2_rdm_aa_mo
state_av_full_occ_2_rdm_ab_mostate_av_full_occ_2_rdm_bb_mostate_av_full_occ_2_rdm_spin_trace_mo
- one_e_dm_mo_beta
File :
determinants/density_matrix.irp.fdouble 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)
\(\alpha\) and \(\beta\) one-body density matrix for each state
Needs:
elec_alpha_numelec_beta_nummo_numn_det
n_intn_statespsi_bilinear_matrix_transp_valuespsi_bilinear_matrix_values
psi_detpsi_det_alpha_uniquepsi_det_beta_unique
Needed by:
difference_dmfull_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mofull_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_mo
one_e_dm_ao_alpha_nstatesone_e_dm_dagger_mo_spin_indexone_e_dm_mo_alpha_averageone_e_dm_mo_alpha_for_dftone_e_dm_mo_beta_for_dft
one_e_dm_mo_diffone_e_dm_mo_spin_indexpsi_energy_h_corev_ne_psi_energyz_dipole_moment
- one_e_dm_mo_beta_average
File :
determinants/density_matrix.irp.fdouble 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)
\(\alpha\) and \(\beta\) one-body density matrix for each state
Needs:
mo_numn_states
one_e_dm_mo_alpha
state_average_weight
Needed by:
d0tud0tu_alpha_aoone_e_dm_ao_alphaone_e_dm_mo
one_e_dm_mo_alpha_for_dftone_e_dm_mo_beta_for_dftone_e_spin_density_mostate_av_full_occ_2_rdm_aa_mo
state_av_full_occ_2_rdm_ab_mostate_av_full_occ_2_rdm_bb_mostate_av_full_occ_2_rdm_spin_trace_mo
- one_e_dm_mo_diff
File :
determinants/density_matrix.irp.fdouble 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:
mo_num
n_states
one_e_dm_mo_alpha
- one_e_dm_mo_spin_index
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: one_e_dm_mo_spin_index (mo_num,mo_num,N_states,2)
Needs:
mo_num
n_states
one_e_dm_mo_alpha
- one_e_spin_density_ao
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: one_e_spin_density_ao (ao_num,ao_num)
One body spin density matrix on the AO basis : \(\rho_{AO}(\alpha) - \rho_{AO}(\beta)\)
Needs:
ao_nummo_coef
mo_num
one_e_spin_density_mo
- one_e_spin_density_mo
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: one_e_spin_density_mo (mo_num,mo_num)
\(\rho(\alpha) - \rho(\beta)\)
Needs:
mo_num
one_e_dm_mo_alpha_average
Needed by:
one_e_spin_density_ao
- one_e_tr_dm_mo
File :
determinants/tr_density_matrix.irp.fdouble precision, allocatable :: one_e_tr_dm_mo (mo_num,mo_num,N_states,N_states)
One body transition density matrix for all pairs of states n and m, < Psi^n | a_i^dagger a_a | Psi^m >
Needs:
elec_alpha_numelec_beta_nummo_numn_det
n_intn_statespsi_bilinear_matrix_transp_values
psi_bilinear_matrix_valuespsi_det_alpha_uniquepsi_det_beta_unique
Needed by:
multi_s_deriv_1
multi_s_dipole_moment
- one_e_tr_dm_mo_alpha
File :
determinants/tr_density_matrix.irp.fdouble precision, allocatable :: one_e_tr_dm_mo_alpha (mo_num,mo_num,N_states,N_states) double precision, allocatable :: one_e_tr_dm_mo_beta (mo_num,mo_num,N_states,N_states)
\(\alpha\) and \(\beta\) one-body transition density matrices for all pairs of states
Needs:
elec_alpha_numelec_beta_nummo_numn_det
n_intn_statespsi_bilinear_matrix_transp_values
psi_bilinear_matrix_valuespsi_det_alpha_uniquepsi_det_beta_unique
- one_e_tr_dm_mo_beta
File :
determinants/tr_density_matrix.irp.fdouble precision, allocatable :: one_e_tr_dm_mo_alpha (mo_num,mo_num,N_states,N_states) double precision, allocatable :: one_e_tr_dm_mo_beta (mo_num,mo_num,N_states,N_states)
\(\alpha\) and \(\beta\) one-body transition density matrices for all pairs of states
Needs:
elec_alpha_numelec_beta_nummo_numn_det
n_intn_statespsi_bilinear_matrix_transp_values
psi_bilinear_matrix_valuespsi_det_alpha_uniquepsi_det_beta_unique
- pruned
File :
determinants/prune_wf.irp.flogical, allocatable :: pruned (N_det)
True if determinant is removed by pruning
Needs:
n_detpruning
psi_average_norm_contrib
psi_det_sorted
- psi_average_norm_contrib
File :
determinants/determinants.irp.fdouble precision, allocatable :: psi_average_norm_contrib (psi_det_size)
Contribution of determinants to the state-averaged density.
Needs:
n_detn_states
psi_coefpsi_det_size
state_average_weight
Needed by:
pruned
psi_det_sorted
- psi_average_norm_contrib_sorted
File :
determinants/determinants.irp.finteger(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:
n_detn_intn_states
psi_average_norm_contribpsi_coef
psi_detpsi_det_size
Needed by:
n_det_generatorsn_det_selectors
prunedpsi_det_generators
psi_selectors
- psi_bilinear_matrix
File :
determinants/spindeterminants.irp.fdouble 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 :
\(D_\alpha^\dagger.C.D_\beta\)
Needs:
n_detn_states
psi_bilinear_matrix_valuespsi_det_alpha_unique
psi_det_beta_unique
- psi_bilinear_matrix_columns
File :
determinants/spindeterminants.irp.fdouble 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 :
\(D_\alpha^\dagger.C.D_\beta\)
Rows are \(\alpha\) determinants and columns are \(\beta\) .
Order refers to psi_det
Needs:
n_detn_intn_states
psi_coefpsi_det_sorted_bitpsi_det
psi_det_alpha_uniquepsi_det_beta_unique
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_modet_alpha_norm
multi_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_moone_e_tr_dm_mo_alphapsi_bilinear_matrixpsi_bilinear_matrix_columns_loc
psi_bilinear_matrix_order_reversepsi_bilinear_matrix_transp_valuesstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_mo
- psi_bilinear_matrix_columns_loc
File :
determinants/spindeterminants.irp.finteger, allocatable :: psi_bilinear_matrix_columns_loc (N_det_beta_unique+1)
Sparse coefficient matrix if the wave function is expressed in a bilinear form :
\(D_\alpha^\dagger.C.D_\beta\)
Rows are \(\alpha\) determinants and columns are \(\beta\) .
Order refers to
psi_detNeeds:
n_det
psi_bilinear_matrix_values
psi_det_beta_unique
- psi_bilinear_matrix_order
File :
determinants/spindeterminants.irp.fdouble 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 :
\(D_\alpha^\dagger.C.D_\beta\)
Rows are \(\alpha\) determinants and columns are \(\beta\) .
Order refers to psi_det
Needs:
n_detn_intn_states
psi_coefpsi_det_sorted_bitpsi_det
psi_det_alpha_uniquepsi_det_beta_unique
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_modet_alpha_norm
multi_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_moone_e_tr_dm_mo_alphapsi_bilinear_matrixpsi_bilinear_matrix_columns_loc
psi_bilinear_matrix_order_reversepsi_bilinear_matrix_transp_valuesstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_mo
- psi_bilinear_matrix_order_reverse
File :
determinants/spindeterminants.irp.finteger, allocatable :: psi_bilinear_matrix_order_reverse (N_det)
Order which allows to go from
psi_bilinear_matrixtopsi_detNeeds:
n_det
psi_bilinear_matrix_values
Needed by:
act_2_rdm_aa_moact_2_rdm_ab_moact_2_rdm_bb_mo
act_2_rdm_spin_trace_moact_2_rdm_trans_spin_trace_mostate_av_act_2_rdm_aa_mo
state_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_mo
- psi_bilinear_matrix_order_transp_reverse
File :
determinants/spindeterminants.irp.finteger, allocatable :: psi_bilinear_matrix_order_transp_reverse (N_det)
Order which allows to go from
psi_bilinear_matrix_order_transptopsi_bilinear_matrixNeeds:
n_det
psi_bilinear_matrix_transp_values
- psi_bilinear_matrix_rows
File :
determinants/spindeterminants.irp.fdouble 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 :
\(D_\alpha^\dagger.C.D_\beta\)
Rows are \(\alpha\) determinants and columns are \(\beta\) .
Order refers to psi_det
Needs:
n_detn_intn_states
psi_coefpsi_det_sorted_bitpsi_det
psi_det_alpha_uniquepsi_det_beta_unique
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_modet_alpha_norm
multi_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_moone_e_tr_dm_mo_alphapsi_bilinear_matrixpsi_bilinear_matrix_columns_loc
psi_bilinear_matrix_order_reversepsi_bilinear_matrix_transp_valuesstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_mo
- psi_bilinear_matrix_transp_columns
File :
determinants/spindeterminants.irp.fdouble 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
psi_bilinear_matrix\(D_\beta^\dagger.C^\dagger.D_\alpha\)
Rows are \(\alpha\) determinants and columns are \(\beta\) , but the matrix is stored in row major format.
Needs:
n_detn_states
psi_bilinear_matrix_valuespsi_det_sorted_bit
psi_det_beta_unique
Needed by:
multi_s_dipole_momentone_e_dm_mo_alpha
one_e_tr_dm_moone_e_tr_dm_mo_alpha
psi_bilinear_matrix_order_transp_reversepsi_bilinear_matrix_transp_rows_loc
- psi_bilinear_matrix_transp_order
File :
determinants/spindeterminants.irp.fdouble 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
psi_bilinear_matrix\(D_\beta^\dagger.C^\dagger.D_\alpha\)
Rows are \(\alpha\) determinants and columns are \(\beta\) , but the matrix is stored in row major format.
Needs:
n_detn_states
psi_bilinear_matrix_valuespsi_det_sorted_bit
psi_det_beta_unique
Needed by:
multi_s_dipole_momentone_e_dm_mo_alpha
one_e_tr_dm_moone_e_tr_dm_mo_alpha
psi_bilinear_matrix_order_transp_reversepsi_bilinear_matrix_transp_rows_loc
- psi_bilinear_matrix_transp_rows
File :
determinants/spindeterminants.irp.fdouble 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
psi_bilinear_matrix\(D_\beta^\dagger.C^\dagger.D_\alpha\)
Rows are \(\alpha\) determinants and columns are \(\beta\) , but the matrix is stored in row major format.
Needs:
n_detn_states
psi_bilinear_matrix_valuespsi_det_sorted_bit
psi_det_beta_unique
Needed by:
multi_s_dipole_momentone_e_dm_mo_alpha
one_e_tr_dm_moone_e_tr_dm_mo_alpha
psi_bilinear_matrix_order_transp_reversepsi_bilinear_matrix_transp_rows_loc
- psi_bilinear_matrix_transp_rows_loc
File :
determinants/spindeterminants.irp.finteger, allocatable :: psi_bilinear_matrix_transp_rows_loc (N_det_alpha_unique+1)
Location of the columns in the
psi_bilinear_matrixNeeds:
n_det
psi_bilinear_matrix_transp_values
psi_det_alpha_unique
- psi_bilinear_matrix_transp_values
File :
determinants/spindeterminants.irp.fdouble 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
psi_bilinear_matrix\(D_\beta^\dagger.C^\dagger.D_\alpha\)
Rows are \(\alpha\) determinants and columns are \(\beta\) , but the matrix is stored in row major format.
Needs:
n_detn_states
psi_bilinear_matrix_valuespsi_det_sorted_bit
psi_det_beta_unique
Needed by:
multi_s_dipole_momentone_e_dm_mo_alpha
one_e_tr_dm_moone_e_tr_dm_mo_alpha
psi_bilinear_matrix_order_transp_reversepsi_bilinear_matrix_transp_rows_loc
- psi_bilinear_matrix_values
File :
determinants/spindeterminants.irp.fdouble 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 :
\(D_\alpha^\dagger.C.D_\beta\)
Rows are \(\alpha\) determinants and columns are \(\beta\) .
Order refers to psi_det
Needs:
n_detn_intn_states
psi_coefpsi_det_sorted_bitpsi_det
psi_det_alpha_uniquepsi_det_beta_unique
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_modet_alpha_norm
multi_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_moone_e_tr_dm_mo_alphapsi_bilinear_matrixpsi_bilinear_matrix_columns_loc
psi_bilinear_matrix_order_reversepsi_bilinear_matrix_transp_valuesstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_mo
- psi_cas
File :
determinants/psi_cas.irp.finteger(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:
act_bitmaskhf_bitmaskmpi_master
n_detn_intn_states
psi_coefpsi_detpsi_det_size
Needed by:
h_matrix_caspsi_cas_energy
psi_cas_sorted_bitpsi_coef_cas_diagonalized
psi_non_caspsi_non_cas_sorted_bit
- psi_cas_coef
File :
determinants/psi_cas.irp.finteger(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:
act_bitmaskhf_bitmaskmpi_master
n_detn_intn_states
psi_coefpsi_detpsi_det_size
Needed by:
h_matrix_caspsi_cas_energy
psi_cas_sorted_bitpsi_coef_cas_diagonalized
psi_non_caspsi_non_cas_sorted_bit
- psi_cas_coef_sorted_bit
File :
determinants/psi_cas.irp.finteger(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:
n_intn_states
psi_cas
psi_det_size
- psi_cas_energy
File :
determinants/psi_cas.irp.fdouble precision, allocatable :: psi_cas_energy (N_states)
Variational energy of \(\Psi_{CAS}\) , where \(\Psi_{CAS} = \sum_{I \in CAS} \I \rangle \langle I | \Psi \rangle\) .
Needs:
h_matrix_cas
n_states
psi_cas
- psi_cas_energy_diagonalized
File :
determinants/psi_cas.irp.fdouble precision, allocatable :: psi_coef_cas_diagonalized (N_det_cas,N_states) double precision, allocatable :: psi_cas_energy_diagonalized (N_states)
Needs:
h_matrix_cas
n_states
psi_cas
- psi_cas_sorted_bit
File :
determinants/psi_cas.irp.finteger(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:
n_intn_states
psi_cas
psi_det_size
- psi_coef
File :
determinants/determinants.irp.fdouble precision, allocatable :: psi_coef (psi_det_size,N_states)
The wave function coefficients. Initialized with Hartree-Fock if the EZFIO file is empty.
Needs:
ezfio_filenamemo_labelmpi_master
n_detn_statespsi_det
psi_det_sizeread_wf
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_mobarycentric_electronic_energyc0_weightci_electronic_energydettocsftransformationmatrixdominant_detdressed_column_idx
gradvec_oldhessmat_oldoverlap_statesp0tuvx_peterpsi_average_norm_contribpsi_bilinear_matrix_valuespsi_caspsi_coef_maxpsi_csf_coefpsi_det_sortedpsi_det_sorted_bit
psi_energypsi_energy_two_epsi_energy_two_e_transpsi_non_caspt2_e0_denominators2_valuesstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_moweight_configurationweight_configuration_average
- psi_coef_cas_diagonalized
File :
determinants/psi_cas.irp.fdouble precision, allocatable :: psi_coef_cas_diagonalized (N_det_cas,N_states) double precision, allocatable :: psi_cas_energy_diagonalized (N_states)
Needs:
h_matrix_cas
n_states
psi_cas
- psi_coef_max
File :
determinants/determinants.irp.fdouble 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:
mpi_master
n_states
psi_coef
- psi_coef_min
File :
determinants/determinants.irp.fdouble 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:
mpi_master
n_states
psi_coef
- psi_coef_sorted
File :
determinants/determinants.irp.finteger(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:
n_detn_intn_states
psi_average_norm_contribpsi_coef
psi_detpsi_det_size
Needed by:
n_det_generatorsn_det_selectors
prunedpsi_det_generators
psi_selectors
- psi_coef_sorted_bit
File :
determinants/determinants.irp.finteger(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 \(\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:
n_detn_int
n_statespsi_coef
psi_detpsi_det_size
Needed by:
psi_bilinear_matrix_transp_values
psi_bilinear_matrix_values
- psi_det
File :
determinants/determinants.irp.finteger(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:
ezfio_filenamehf_bitmaskmo_coef
mo_labelmpi_mastern_det
n_intpsi_det_sizeread_wf
Needed by:
ci_electronic_energydet_to_configurationdettocsftransformationmatrixdiagonal_h_matrix_on_psi_detgradvec_oldh_matrix_all_detsh_matrix_diag_all_detshessmat_oldmax_degree_excn_elec_alpha_for_psi_configuration
one_e_dm_mo_alphap0tuvx_peterpsi_bilinear_matrix_valuespsi_caspsi_coefpsi_configurationpsi_configuration_to_psi_detpsi_csf_coefpsi_det_alphapsi_det_beta
psi_det_hiipsi_det_sortedpsi_det_sorted_bitpsi_energypsi_energy_two_epsi_energy_two_e_transpsi_non_cass2_matrix_all_detss2_values
- psi_det_alpha
File :
determinants/spindeterminants.irp.finteger(bit_kind), allocatable :: psi_det_alpha (N_int,psi_det_size)
List of \(\alpha\) determinants of psi_det
Needs:
n_detn_int
psi_det
psi_det_size
Needed by:
psi_det_alpha_unique
- psi_det_alpha_unique
File :
determinants/spindeterminants.irp.f_template_144integer(bit_kind), allocatable :: psi_det_alpha_unique (N_int,psi_det_size) integer :: n_det_alpha_unique
Unique \(\alpha\) determinants
Needs:
mpi_mastern_det
n_intpsi_det_alpha
psi_det_size
Needed by:
det_alpha_normmulti_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_mo
one_e_tr_dm_mo_alphapsi_bilinear_matrixpsi_bilinear_matrix_transp_rows_locpsi_bilinear_matrix_values
singles_alpha_cscsingles_alpha_csc_idxsingles_alpha_csc_map
- psi_det_beta
File :
determinants/spindeterminants.irp.finteger(bit_kind), allocatable :: psi_det_beta (N_int,psi_det_size)
List of \(\beta\) determinants of psi_det
Needs:
n_detn_int
psi_det
psi_det_size
Needed by:
psi_det_beta_unique
- psi_det_beta_unique
File :
determinants/spindeterminants.irp.f_template_144integer(bit_kind), allocatable :: psi_det_beta_unique (N_int,psi_det_size) integer :: n_det_beta_unique
Unique \(\beta\) determinants
Needs:
mpi_mastern_det
n_intpsi_det_beta
psi_det_size
Needed by:
det_alpha_normmulti_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_mo
one_e_tr_dm_mo_alphapsi_bilinear_matrixpsi_bilinear_matrix_columns_locpsi_bilinear_matrix_transp_values
psi_bilinear_matrix_valuessingles_beta_cscsingles_beta_csc_idxsingles_beta_csc_map
- psi_det_hii
File :
determinants/determinants.irp.fdouble precision, allocatable :: psi_det_hii (N_det)
\(\langle i|h|i \rangle\) for all determinants.
Needs:
elec_numn_det
n_intpsi_det
ref_bitmaskref_bitmask_energy
Needed by:
psi_configuration_hii
pt2_e0_denominator
- psi_det_size
File :
determinants/determinants.irp.finteger :: psi_det_size
Size of the psi_det and psi_coef arrays
Needs:
ezfio_filename
mpi_master
read_wf
Needed by:
psi_average_norm_contribpsi_caspsi_cas_sorted_bitpsi_coefpsi_configurationpsi_detpsi_det_alpha
psi_det_alpha_uniquepsi_det_betapsi_det_beta_uniquepsi_det_generatorspsi_det_sortedpsi_det_sorted_bit
psi_energypsi_energy_two_epsi_non_caspsi_non_cas_sorted_bitpsi_selectors_sizes2_values
- psi_det_sorted
File :
determinants/determinants.irp.finteger(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:
n_detn_intn_states
psi_average_norm_contribpsi_coef
psi_detpsi_det_size
Needed by:
n_det_generatorsn_det_selectors
prunedpsi_det_generators
psi_selectors
- psi_det_sorted_bit
File :
determinants/determinants.irp.finteger(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 \(\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:
n_detn_int
n_statespsi_coef
psi_detpsi_det_size
Needed by:
psi_bilinear_matrix_transp_values
psi_bilinear_matrix_values
- psi_det_sorted_order
File :
determinants/determinants.irp.finteger(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:
n_detn_intn_states
psi_average_norm_contribpsi_coef
psi_detpsi_det_size
Needed by:
n_det_generatorsn_det_selectors
prunedpsi_det_generators
psi_selectors
- psi_energy_h_core
File :
determinants/psi_energy_mono_elec.irp.fdouble precision, allocatable :: psi_energy_h_core (N_states)
psi_energy_h_core = \(\langle \Psi | h_{core} |\Psi \rangle\)
computed using the
one_e_dm_mo_alpha+one_e_dm_mo_betaandmo_one_e_integralsNeeds:
elec_alpha_numelec_beta_num
mo_nummo_one_e_integrals
n_statesone_e_dm_mo_alpha
- psi_non_cas
File :
determinants/psi_cas.irp.finteger(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:
n_detn_intn_states
psi_caspsi_coef
psi_detpsi_det_size
Needed by:
psi_non_cas_sorted_bit
- psi_non_cas_coef
File :
determinants/psi_cas.irp.finteger(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:
n_detn_intn_states
psi_caspsi_coef
psi_detpsi_det_size
Needed by:
psi_non_cas_sorted_bit
- psi_non_cas_coef_sorted_bit
File :
determinants/psi_cas.irp.finteger(bit_kind), allocatable :: psi_non_cas_sorted_bit (N_int,2,psi_det_size) double precision, allocatable :: psi_non_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:
n_intn_states
psi_caspsi_det_size
psi_non_cas
- psi_non_cas_sorted_bit
File :
determinants/psi_cas.irp.finteger(bit_kind), allocatable :: psi_non_cas_sorted_bit (N_int,2,psi_det_size) double precision, allocatable :: psi_non_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:
n_intn_states
psi_caspsi_det_size
psi_non_cas
- ref_bitmask_energy
File :
determinants/ref_bitmask.irp.fdouble precision :: ref_bitmask_energy double precision :: ref_bitmask_one_e_energy double precision :: ref_bitmask_kinetic_energy double precision :: ref_bitmask_n_e_energy double precision :: ref_bitmask_two_e_energy double precision :: ref_bitmask_energy_ab double precision :: ref_bitmask_energy_bb double precision :: ref_bitmask_energy_aa
Energy of the reference bitmask used in Slater rules
Needs:
elec_alpha_numelec_beta_nummo_integrals_n_e
mo_kinetic_integralsmo_one_e_integralsmo_two_e_integrals_jj
n_intref_bitmask
Needed by:
coef_hf_selectordiagonal_h_matrix_on_psi_det
psi_det_hiipsi_energy_two_e_trans
psi_selectors_diag_h_mat
- ref_bitmask_energy_aa
File :
determinants/ref_bitmask.irp.fdouble precision :: ref_bitmask_energy double precision :: ref_bitmask_one_e_energy double precision :: ref_bitmask_kinetic_energy double precision :: ref_bitmask_n_e_energy double precision :: ref_bitmask_two_e_energy double precision :: ref_bitmask_energy_ab double precision :: ref_bitmask_energy_bb double precision :: ref_bitmask_energy_aa
Energy of the reference bitmask used in Slater rules
Needs:
elec_alpha_numelec_beta_nummo_integrals_n_e
mo_kinetic_integralsmo_one_e_integralsmo_two_e_integrals_jj
n_intref_bitmask
Needed by:
coef_hf_selectordiagonal_h_matrix_on_psi_det
psi_det_hiipsi_energy_two_e_trans
psi_selectors_diag_h_mat
- ref_bitmask_energy_ab
File :
determinants/ref_bitmask.irp.fdouble precision :: ref_bitmask_energy double precision :: ref_bitmask_one_e_energy double precision :: ref_bitmask_kinetic_energy double precision :: ref_bitmask_n_e_energy double precision :: ref_bitmask_two_e_energy double precision :: ref_bitmask_energy_ab double precision :: ref_bitmask_energy_bb double precision :: ref_bitmask_energy_aa
Energy of the reference bitmask used in Slater rules
Needs:
elec_alpha_numelec_beta_nummo_integrals_n_e
mo_kinetic_integralsmo_one_e_integralsmo_two_e_integrals_jj
n_intref_bitmask
Needed by:
coef_hf_selectordiagonal_h_matrix_on_psi_det
psi_det_hiipsi_energy_two_e_trans
psi_selectors_diag_h_mat
- ref_bitmask_energy_bb
File :
determinants/ref_bitmask.irp.fdouble precision :: ref_bitmask_energy double precision :: ref_bitmask_one_e_energy double precision :: ref_bitmask_kinetic_energy double precision :: ref_bitmask_n_e_energy double precision :: ref_bitmask_two_e_energy double precision :: ref_bitmask_energy_ab double precision :: ref_bitmask_energy_bb double precision :: ref_bitmask_energy_aa
Energy of the reference bitmask used in Slater rules
Needs:
elec_alpha_numelec_beta_nummo_integrals_n_e
mo_kinetic_integralsmo_one_e_integralsmo_two_e_integrals_jj
n_intref_bitmask
Needed by:
coef_hf_selectordiagonal_h_matrix_on_psi_det
psi_det_hiipsi_energy_two_e_trans
psi_selectors_diag_h_mat
- ref_bitmask_kinetic_energy
File :
determinants/ref_bitmask.irp.fdouble precision :: ref_bitmask_energy double precision :: ref_bitmask_one_e_energy double precision :: ref_bitmask_kinetic_energy double precision :: ref_bitmask_n_e_energy double precision :: ref_bitmask_two_e_energy double precision :: ref_bitmask_energy_ab double precision :: ref_bitmask_energy_bb double precision :: ref_bitmask_energy_aa
Energy of the reference bitmask used in Slater rules
Needs:
elec_alpha_numelec_beta_nummo_integrals_n_e
mo_kinetic_integralsmo_one_e_integralsmo_two_e_integrals_jj
n_intref_bitmask
Needed by:
coef_hf_selectordiagonal_h_matrix_on_psi_det
psi_det_hiipsi_energy_two_e_trans
psi_selectors_diag_h_mat
- ref_bitmask_n_e_energy
File :
determinants/ref_bitmask.irp.fdouble precision :: ref_bitmask_energy double precision :: ref_bitmask_one_e_energy double precision :: ref_bitmask_kinetic_energy double precision :: ref_bitmask_n_e_energy double precision :: ref_bitmask_two_e_energy double precision :: ref_bitmask_energy_ab double precision :: ref_bitmask_energy_bb double precision :: ref_bitmask_energy_aa
Energy of the reference bitmask used in Slater rules
Needs:
elec_alpha_numelec_beta_nummo_integrals_n_e
mo_kinetic_integralsmo_one_e_integralsmo_two_e_integrals_jj
n_intref_bitmask
Needed by:
coef_hf_selectordiagonal_h_matrix_on_psi_det
psi_det_hiipsi_energy_two_e_trans
psi_selectors_diag_h_mat
- ref_bitmask_one_e_energy
File :
determinants/ref_bitmask.irp.fdouble precision :: ref_bitmask_energy double precision :: ref_bitmask_one_e_energy double precision :: ref_bitmask_kinetic_energy double precision :: ref_bitmask_n_e_energy double precision :: ref_bitmask_two_e_energy double precision :: ref_bitmask_energy_ab double precision :: ref_bitmask_energy_bb double precision :: ref_bitmask_energy_aa
Energy of the reference bitmask used in Slater rules
Needs:
elec_alpha_numelec_beta_nummo_integrals_n_e
mo_kinetic_integralsmo_one_e_integralsmo_two_e_integrals_jj
n_intref_bitmask
Needed by:
coef_hf_selectordiagonal_h_matrix_on_psi_det
psi_det_hiipsi_energy_two_e_trans
psi_selectors_diag_h_mat
- ref_bitmask_two_e_energy
File :
determinants/ref_bitmask.irp.fdouble precision :: ref_bitmask_energy double precision :: ref_bitmask_one_e_energy double precision :: ref_bitmask_kinetic_energy double precision :: ref_bitmask_n_e_energy double precision :: ref_bitmask_two_e_energy double precision :: ref_bitmask_energy_ab double precision :: ref_bitmask_energy_bb double precision :: ref_bitmask_energy_aa
Energy of the reference bitmask used in Slater rules
Needs:
elec_alpha_numelec_beta_nummo_integrals_n_e
mo_kinetic_integralsmo_one_e_integralsmo_two_e_integrals_jj
n_intref_bitmask
Needed by:
coef_hf_selectordiagonal_h_matrix_on_psi_det
psi_det_hiipsi_energy_two_e_trans
psi_selectors_diag_h_mat
- ref_closed_shell_bitmask
File :
determinants/single_excitations.irp.finteger(bit_kind), allocatable :: ref_closed_shell_bitmask (N_int,2)
Needs:
elec_alpha_numelec_beta_num
n_int
ref_bitmask
Needed by:
fock_operator_closed_shell_ref_bitmask
fock_wee_closed_shell
- s2_matrix_all_dets
File :
determinants/utils.irp.fdouble precision, allocatable :: s2_matrix_all_dets (N_det,N_det)
\(\widehat{S^2}\) matrix on the basis of the Slater determinants defined by psi_det
Needs:
n_det
n_int
psi_det
Needed by:
ci_electronic_energy
psi_energy
- s2_values
File :
determinants/s2.irp.fdouble precision, allocatable :: s2_values (N_states) double precision, allocatable :: s_values (N_states)
array of the averaged values of the S^2 operator on the various states
Needs:
n_detn_int
n_statespsi_coef
psi_detpsi_det_size
- s_values
File :
determinants/s2.irp.fdouble precision, allocatable :: s2_values (N_states) double precision, allocatable :: s_values (N_states)
array of the averaged values of the S^2 operator on the various states
Needs:
n_detn_int
n_statespsi_coef
psi_detpsi_det_size
- s_z
File :
determinants/s2.irp.fdouble precision :: s_z double precision :: s_z2_sz
z component of the Spin
Needs:
elec_alpha_num
elec_beta_num
- s_z2_sz
File :
determinants/s2.irp.fdouble precision :: s_z double precision :: s_z2_sz
z component of the Spin
Needs:
elec_alpha_num
elec_beta_num
- single_exc_bitmask
File :
determinants/determinants_bitmasks.irp.finteger(bit_kind), allocatable :: single_exc_bitmask (N_int,2,N_single_exc_bitmasks)
single_exc_bitmask(:,1,i) is the bitmask for holes
single_exc_bitmask(:,2,i) is the bitmask for particles
for a given couple of hole/particle excitations i.
Needs:
hf_bitmask
n_int
n_single_exc_bitmasks
- singles_alpha_csc
File :
determinants/spindeterminants.irp.finteger, allocatable :: singles_alpha_csc (singles_alpha_csc_size)
Indices of all single excitations
Needs:
n_int
psi_det_alpha_unique
singles_alpha_csc_idx
- singles_alpha_csc_idx
File :
determinants/spindeterminants.irp.finteger*8, allocatable :: singles_alpha_csc_idx (N_det_alpha_unique+1) integer*8 :: singles_alpha_csc_size
singles_alpha_csc_size : Dimension of the
singles_alpha_cscarraysingles_alpha_csc_idx : Index where the single excitations of determinant i start
Needs:
n_int
psi_det_alpha_unique
Needed by:
singles_alpha_csc
singles_alpha_csc_map
- singles_alpha_csc_map
File :
determinants/spindeterminants.irp.ftype(mmap_type) :: singles_alpha_csc_map
Indices of all single excitations
Needs:
n_int
psi_det_alpha_unique
singles_alpha_csc_idx
- singles_alpha_csc_size
File :
determinants/spindeterminants.irp.finteger*8, allocatable :: singles_alpha_csc_idx (N_det_alpha_unique+1) integer*8 :: singles_alpha_csc_size
singles_alpha_csc_size : Dimension of the
singles_alpha_cscarraysingles_alpha_csc_idx : Index where the single excitations of determinant i start
Needs:
n_int
psi_det_alpha_unique
Needed by:
singles_alpha_csc
singles_alpha_csc_map
- singles_beta_csc
File :
determinants/spindeterminants.irp.finteger, allocatable :: singles_beta_csc (singles_beta_csc_size)
Indices of all single excitations
Needs:
n_int
psi_det_beta_unique
singles_beta_csc_idx
- singles_beta_csc_idx
File :
determinants/spindeterminants.irp.finteger*8, allocatable :: singles_beta_csc_idx (N_det_beta_unique+1) integer*8 :: singles_beta_csc_size
singles_beta_csc_size : Dimension of the
singles_beta_cscarraysingles_beta_csc_idx : Index where the single excitations of determinant i start
Needs:
n_int
psi_det_beta_unique
Needed by:
singles_beta_csc
singles_beta_csc_map
- singles_beta_csc_map
File :
determinants/spindeterminants.irp.ftype(mmap_type) :: singles_beta_csc_map
Indices of all single excitations
Needs:
n_int
psi_det_beta_unique
singles_beta_csc_idx
- singles_beta_csc_size
File :
determinants/spindeterminants.irp.finteger*8, allocatable :: singles_beta_csc_idx (N_det_beta_unique+1) integer*8 :: singles_beta_csc_size
singles_beta_csc_size : Dimension of the
singles_beta_cscarraysingles_beta_csc_idx : Index where the single excitations of determinant i start
Needs:
n_int
psi_det_beta_unique
Needed by:
singles_beta_csc
singles_beta_csc_map
- state_average_weight
File :
determinants/density_matrix.irp.fdouble precision, allocatable :: state_average_weight (N_states)
Weights in the state-average calculation of the density matrix
Needs:
c0_weight
n_states
weight_one_e_dm
Needed by:
det_alpha_normone_e_dm_average_alpha_mo_for_dftone_e_dm_average_beta_mo_for_dftone_e_dm_mo_alpha_average
psi_average_norm_contribselection_weightstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mo
state_av_act_2_rdm_bb_mostate_av_act_2_rdm_spin_trace_moweight_configuration_average
- v_ne_psi_energy
File :
determinants/psi_energy_mono_elec.irp.fdouble precision, allocatable :: v_ne_psi_energy (N_states)
v_ne_psi_energy = \(\langle \Psi | v_ne |\Psi \rangle\)
computed using the
one_e_dm_mo_alpha+one_e_dm_mo_betaandmo_one_e_integralsNeeds:
elec_alpha_numelec_beta_num
mo_integrals_n_emo_num
n_statesone_e_dm_mo_alpha
- x_dipole_moment
File :
determinants/dipole_moments.irp.fdouble precision, allocatable :: z_dipole_moment (N_states) double precision, allocatable :: y_dipole_moment (N_states) double precision, allocatable :: x_dipole_moment (N_states)
blablabla
Needs:
mo_dipole_xmo_numn_states
nucl_chargenucl_coord
nucl_numone_e_dm_mo_alpha
- y_dipole_moment
File :
determinants/dipole_moments.irp.fdouble precision, allocatable :: z_dipole_moment (N_states) double precision, allocatable :: y_dipole_moment (N_states) double precision, allocatable :: x_dipole_moment (N_states)
blablabla
Needs:
mo_dipole_xmo_numn_states
nucl_chargenucl_coord
nucl_numone_e_dm_mo_alpha
- z_dipole_moment
File :
determinants/dipole_moments.irp.fdouble precision, allocatable :: z_dipole_moment (N_states) double precision, allocatable :: y_dipole_moment (N_states) double precision, allocatable :: x_dipole_moment (N_states)
blablabla
Needs:
mo_dipole_xmo_numn_states
nucl_chargenucl_coord
nucl_numone_e_dm_mo_alpha
Subroutines / functions
- a_operator:
File :
determinants/slater_rules.irp.fsubroutine a_operator(iorb,ispin,key,hjj,Nint,na,nb)
Needed for
diag_H_mat_elem().Needs:
mo_one_e_integrals
mo_two_e_integrals_jj
Called by:
diag_h_mat_elem()
Calls:
bitstring_to_list_ab()
- a_operator_two_e:
File :
determinants/slater_rules_wee_mono.irp.fsubroutine a_operator_two_e(iorb,ispin,key,hjj,Nint,na,nb)
Needed for
diag_Wee_mat_elem().Needs:
mo_two_e_integrals_jj
Called by:
diag_wee_mat_elem()
Calls:
bitstring_to_list_ab()
- ac_operator:
File :
determinants/slater_rules.irp.fsubroutine ac_operator(iorb,ispin,key,hjj,Nint,na,nb)
Needed for
diag_H_mat_elem().Needs:
mo_num
mo_one_e_integrals
mo_two_e_integrals_jj
Called by:
diag_h_mat_elem()
Calls:
bitstring_to_list_ab()
- ac_operator_two_e:
File :
determinants/slater_rules_wee_mono.irp.fsubroutine ac_operator_two_e(iorb,ispin,key,hjj,Nint,na,nb)
Needed for
diag_Wee_mat_elem().Needs:
mo_two_e_integrals_jj
Called by:
diag_wee_mat_elem()
Calls:
bitstring_to_list_ab()
- apply_excitation:
File :
determinants/determinants.irp.fsubroutine apply_excitation(det, exc, res, ok, Nint)
- apply_hole:
File :
determinants/determinants.irp.fsubroutine apply_hole(det, s1, h1, res, ok, Nint)
Called by:
fill_buffer_double()fill_buffer_single()
select_singles()
select_singles_and_doubles()
- apply_holes:
File :
determinants/determinants.irp.fsubroutine apply_holes(det, s1, h1, s2, h2, res, ok, Nint)
Called by:
fill_buffer_double()
fill_buffer_single()
- apply_particle:
File :
determinants/determinants.irp.fsubroutine apply_particle(det, s1, p1, res, ok, Nint)
Called by:
fill_buffer_double()fill_buffer_single()
get_m0()
get_m1()
- apply_particles:
File :
determinants/determinants.irp.fsubroutine apply_particles(det, s1, p1, s2, p2, res, ok, Nint)
Called by:
fill_buffer_double()fill_buffer_single()
get_d0()get_d0_reference()
get_d1()get_d1_reference()
- bitstring_to_list_ab:
File :
determinants/slater_rules.irp.fsubroutine bitstring_to_list_ab( string, list, n_elements, Nint)
Gives the indices(+1) of the bits set to 1 in the bit string For alpha/beta determinants.
Called by:
a_operator()a_operator_two_e()ac_operator()ac_operator_two_e()build_fock_tmp()diag_h_mat_elem()diag_h_mat_elem_one_e()diag_wee_mat_elem()example_determinants()fock_operator_closed_shell_ref_bitmaskfock_wee_closed_shellget_occupation_from_dets()get_single_excitation_from_fock()
i_h_j()i_h_j_s2()i_h_j_two_e()i_h_j_verbose()multi_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_moone_e_tr_dm_mo_alphaorb_range_diag_to_all_2_rdm_dm_buffer()orb_range_diag_to_all_states_2_rdm_dm_buffer()orb_range_diag_to_all_states_2_rdm_trans_buffer()orb_range_off_diag_single_to_2_rdm_aa_dm_buffer()
orb_range_off_diag_single_to_2_rdm_ab_dm_buffer()orb_range_off_diag_single_to_2_rdm_bb_dm_buffer()orb_range_off_diag_single_to_all_states_aa_dm_buffer()orb_range_off_diag_single_to_all_states_aa_trans_rdm_buffer()orb_range_off_diag_single_to_all_states_ab_dm_buffer()orb_range_off_diag_single_to_all_states_ab_trans_rdm_buffer()orb_range_off_diag_single_to_all_states_bb_dm_buffer()orb_range_off_diag_single_to_all_states_bb_trans_rdm_buffer()ref_closed_shell_bitmaskselect_singles()select_singles_and_doubles()single_excitation_wee()
- build_fock_tmp:
File :
determinants/fock_diag.irp.fsubroutine build_fock_tmp(fock_diag_tmp,det_ref,Nint)
Build the diagonal of the Fock matrix corresponding to a generator determinant. $F_{00}$ is $langle i|H|i rangle = E_0$.
Needs:
elec_alpha_numelec_beta_num
mo_nummo_one_e_integrals
mo_two_e_integrals_jjn_int
Called by:
select_connected()
Calls:
bitstring_to_list_ab()
debug_det()
- build_singly_excited_wavefunction:
File :
determinants/create_excitations.irp.fsubroutine build_singly_excited_wavefunction(i_hole,i_particle,ispin,det_out,coef_out)
Applies the single excitation operator : a^{dager}_(i_particle) a_(i_hole) of spin = ispin to the current wave function (psi_det, psi_coef)
Needs:
n_detn_int
n_statespsi_coef
psi_det
Calls:
do_single_excitation()
get_phase()
- connected_to_hf:
File :
determinants/slater_rules.irp.fsubroutine connected_to_hf(key_i,yes_no)
Needs:
mo_one_e_integralsn_int
ref_bitmask
thresh_sym
Calls:
get_excitation_degree()
get_single_excitation()
i_h_j()
- connected_to_ref:
File :
determinants/connected_to_ref.irp.finteger function connected_to_ref(key,keys,Nint,N_past_in,Ndet)
input : key : a given Slater determinant
: keys: a list of Slater determinants
: Ndet: the number of Slater determinants in keys
: N_past_in the number of Slater determinants for the connectivity research
output : 0 : key not connected to the N_past_in first Slater determinants in keys
i : key is connected to determinant i of keys
-i : key is the ith determinant of the reference wf keys
- connected_to_ref_by_single:
File :
determinants/connected_to_ref.irp.finteger function connected_to_ref_by_single(key,keys,Nint,N_past_in,Ndet)
Returns
trueiskeyis connected to the reference by a single excitation. input : key : a given Slater determinant: keys: a list of Slater determinants
: Ndet: the number of Slater determinants in keys
: N_past_in the number of Slater determinants for the connectivity research
output : 0 : key not connected by a MONO EXCITATION to the N_past_in first Slater determinants in keys
i : key is connected by a MONO EXCITATION to determinant i of keys
-i : key is the ith determinant of the reference wf keys
- copy_h_apply_buffer_to_wf:
File :
determinants/h_apply.irp.fsubroutine copy_H_apply_buffer_to_wf
Copies the H_apply buffer to psi_coef. After calling this subroutine, N_det, psi_det and psi_coef need to be touched
Needs:
h_apply_buffer_allocatedn_detn_int
n_statesnprocpruned
psi_coefpsi_detpsi_det_size
Called by:
generate_all_alpha_beta_det_products()make_s2_eigenfunction()
replace_wf()run_cipsi()
run_stochastic_cipsi()
Calls:
normalize()
remove_duplicates_in_psi_det()
Touches:
n_detc0_weightpsi_coef
psi_det_sorted_bitpsi_det
psi_det_sizepsi_det_sorted_bit
- copy_psi_bilinear_to_psi:
File :
determinants/spindeterminants.irp.fsubroutine copy_psi_bilinear_to_psi(psi, isize)
Overwrites
psi_detandpsi_coefwith the wave function in bilinear orderNeeds:
n_intpsi_bilinear_matrix_values
psi_det_alpha_unique
psi_det_beta_unique
- create_microlist:
File :
determinants/filter_connected.irp.fsubroutine create_microlist(minilist, N_minilist, key_mask, microlist, idx_microlist, N_microlist, ptr_microlist, Nint)
Needs:
mo_num
Called by:
perturb_buffer_dummy()perturb_buffer_epstein_nesbet()
perturb_buffer_epstein_nesbet_2x2()perturb_buffer_epstein_nesbet_2x2_no_ci_diag()
perturb_buffer_moller_plesset()perturb_buffer_qdpt()
Calls:
bitstring_to_list()
- create_minilist:
File :
determinants/slater_rules.irp.fsubroutine create_minilist(key_mask, fullList, miniList, idx_miniList, N_fullList, N_miniList, Nint)
Called by:
perturb_buffer_by_mono_dummy()perturb_buffer_by_mono_epstein_nesbet()perturb_buffer_by_mono_epstein_nesbet_2x2()perturb_buffer_by_mono_epstein_nesbet_2x2_no_ci_diag()
perturb_buffer_by_mono_moller_plesset()perturb_buffer_by_mono_qdpt()perturb_buffer_dummy()perturb_buffer_epstein_nesbet()
perturb_buffer_epstein_nesbet_2x2()perturb_buffer_epstein_nesbet_2x2_no_ci_diag()perturb_buffer_moller_plesset()perturb_buffer_qdpt()
- create_minilist_find_previous:
File :
determinants/slater_rules.irp.fsubroutine create_minilist_find_previous(key_mask, fullList, miniList, N_fullList, N_miniList, fullMatch, Nint)
Called by:
perturb_buffer_by_mono_dummy()perturb_buffer_by_mono_epstein_nesbet()perturb_buffer_by_mono_epstein_nesbet_2x2()perturb_buffer_by_mono_epstein_nesbet_2x2_no_ci_diag()
perturb_buffer_by_mono_moller_plesset()perturb_buffer_by_mono_qdpt()perturb_buffer_dummy()perturb_buffer_epstein_nesbet()
perturb_buffer_epstein_nesbet_2x2()perturb_buffer_epstein_nesbet_2x2_no_ci_diag()perturb_buffer_moller_plesset()perturb_buffer_qdpt()
- create_wf_of_psi_bilinear_matrix:
File :
determinants/spindeterminants.irp.fsubroutine create_wf_of_psi_bilinear_matrix(truncate)
Generates a wave function containing all possible products of $alpha$ and $beta$ determinants
Calls:
generate_all_alpha_beta_det_products()
update_wf_of_psi_bilinear_matrix()
Touches:
n_detpsi_det_alpha_uniquepsi_det_beta_uniquec0_weight
psi_coefpsi_det_sorted_bitpsi_detpsi_det_alpha_unique
psi_det_beta_uniquepsi_det_sizepsi_det_sorted_bit
- decode_exc:
File :
determinants/slater_rules.irp.fsubroutine decode_exc(exc,degree,h1,p1,h2,p2,s1,s2)
Decodes the exc arrays returned by get_excitation. h1,h2 : Holes p1,p2 : Particles s1,s2 : Spins (1:alpha, 2:beta) degree : Degree of excitation
Called by:
diag_h_mat_elem_fock()
example_determinants()
pt2_moller_plesset()
- decode_exc_spin:
File :
determinants/slater_rules.irp.fsubroutine decode_exc_spin(exc,h1,p1,h2,p2)
Decodes the exc arrays returned by get_excitation.
h1,h2 : Holes
p1,p2 : Particles
Called by:
multi_s_dipole_momentone_e_dm_mo_alpha
one_e_tr_dm_mo
one_e_tr_dm_mo_alpha
- det_inf:
File :
determinants/sort_dets_ab.irp.flogical function det_inf(key1, key2, Nint)
Ordering function for determinants.
- det_search_key:
File :
determinants/connected_to_ref.irp.finteger*8 function det_search_key(det,Nint)
Return an integer*8 corresponding to a determinant index for searching
Needs:
elec_alpha_num
- detcmp:
File :
determinants/determinants.irp.finteger function detCmp(a,b,Nint)
- deteq:
File :
determinants/determinants.irp.flogical function detEq(a,b,Nint)
- diag_h_mat_elem:
File :
determinants/slater_rules.irp.fdouble precision function diag_H_mat_elem(det_in,Nint)
Computes $langle i|H|i rangle$.
Needs:
elec_num
ref_bitmask
ref_bitmask_energy
Calls:
a_operator()
ac_operator()
bitstring_to_list_ab()
- diag_h_mat_elem_fock:
File :
determinants/slater_rules.irp.fdouble precision function diag_H_mat_elem_fock(det_ref,det_pert,fock_diag_tmp,Nint)
Computes $langle i|H|i rangle$ when $i$ is at most a double excitation from a reference.
Needs:
mo_num
mo_two_e_integrals_jj
Calls:
decode_exc()get_double_excitation()
get_excitation_degree()
get_single_excitation()
- diag_h_mat_elem_one_e:
File :
determinants/slater_rules_wee_mono.irp.fdouble precision function diag_H_mat_elem_one_e(det_in,Nint)
Computes $langle i|H|i rangle$.
Needs:
mo_one_e_integrals
Calls:
bitstring_to_list_ab()
- diag_s_mat_elem:
File :
determinants/s2.irp.fdouble precision function diag_S_mat_elem(key_i,Nint)
Returns <i|S^2|i>
- diag_wee_mat_elem:
File :
determinants/slater_rules_wee_mono.irp.fdouble precision function diag_wee_mat_elem(det_in,Nint)
Computes $langle i|H|i rangle$.
Needs:
elec_num
ref_bitmask
ref_bitmask_energy
Calls:
a_operator_two_e()
ac_operator_two_e()
bitstring_to_list_ab()
- do_single_excitation:
File :
determinants/create_excitations.irp.fsubroutine do_single_excitation(key_in,i_hole,i_particle,ispin,i_ok)
Apply the single excitation operator : a^{dager}_(i_particle) a_(i_hole) of spin = ispin on key_in ispin = 1 == alpha ispin = 2 == beta i_ok = 1 == the excitation is possible i_ok = -1 == the excitation is not possible
Needs:
n_int
Called by:
build_singly_excited_wavefunction()do_signed_mono_excitation()
example_determinants()get_excitation_general()
get_phase_general()
- example_determinants:
File :
determinants/example.irp.fsubroutine example_determinants
subroutine that illustrates the main features available in determinants
Needs:
elec_alpha_num
n_int
ref_bitmask
Calls:
bitstring_to_list_ab()debug_det()decode_exc()
do_single_excitation()get_excitation()get_excitation_degree()
i_h_j()print_det()
- example_determinants_psi_det:
File :
determinants/example.irp.fsubroutine example_determinants_psi_det
subroutine that illustrates the main features available in determinants using the psi_det/psi_coef
Needs:
read_wf
Calls:
routine_example_psi_det()
Touches:
read_wf
- fill_h_apply_buffer_no_selection:
File :
determinants/h_apply.irp.fsubroutine fill_H_apply_buffer_no_selection(n_selected,det_buffer,Nint,iproc)
Fill the H_apply buffer with determiants for CISD
Needs:
h_apply_buffer_allocated
n_det
n_states
Called by:
generate_all_alpha_beta_det_products()make_s2_eigenfunction()
replace_wf()zmq_pt2()
zmq_selection()
Calls:
omp_set_lock()
omp_unset_lock()
resize_h_apply_buffer()
- filter_connected:
File :
determinants/filter_connected.irp.fsubroutine filter_connected(key1,key2,Nint,sze,idx)
Filters out the determinants that are not connected by H
returns the array idx which contains the index of the
determinants in the array key1 that interact
via the H operator with key2.
idx(0) is the number of determinants that interact with key1
Called by:
get_uj_s2_ui()
- filter_connected_i_h_psi0:
File :
determinants/filter_connected.irp.fsubroutine filter_connected_i_H_psi0(key1,key2,Nint,sze,idx)
Returns the array idx which contains the index of the
determinants in the array key1 that interact
via the H operator with key2.
idx(0) is the number of determinants that interact with key1
Called by:
i_h_psi()
i_h_psi_minilist()
i_s2_psi_minilist()
- filter_not_connected:
File :
determinants/filter_connected.irp.fsubroutine filter_not_connected(key1,key2,Nint,sze,idx)
Returns the array idx which contains the index of the
determinants in the array key1 that DO NOT interact
via the H operator with key2.
idx(0) is the number of determinants that DO NOT interact with key1
- generate_all_alpha_beta_det_products:
File :
determinants/spindeterminants.irp.fsubroutine generate_all_alpha_beta_det_products
Creates a wave function from all possible $alpha times beta$ determinants
Needs:
h_apply_buffer_allocatedn_detpsi_det_alpha_unique
psi_det_beta_uniquen_intpsi_coef
psi_detpsi_det_alpha_uniquepsi_det_beta_unique
Called by:
create_wf_of_psi_bilinear_matrix()
generate_cas_space()
Calls:
copy_h_apply_buffer_to_wf()
fill_h_apply_buffer_no_selection()
Touches:
n_detpsi_det_alpha_uniquepsi_det_beta_uniquec0_weight
psi_coefpsi_det_sorted_bitpsi_detpsi_det_alpha_unique
psi_det_beta_uniquepsi_det_sizepsi_det_sorted_bit
- generate_cas_space:
File :
determinants/generate_cas_space.irp.fsubroutine generate_cas_space
Generates the CAS space
Needs:
binom_intelec_alpha_numelec_beta_numlist_actlist_core_inact
n_act_orbn_core_inact_orbn_detpsi_det_alpha_unique
psi_det_beta_uniquen_intpsi_det_alpha_uniquepsi_det_beta_unique
Calls:
bitstring_to_list()
generate_all_alpha_beta_det_products()
list_to_bitstring()
Touches:
n_detpsi_det_alpha_uniquepsi_det_beta_uniquec0_weightpsi_det_alpha_unique
psi_det_beta_uniquepsi_coefpsi_det_sorted_bitpsi_det
psi_det_alpha_uniquepsi_det_beta_uniquepsi_det_sizepsi_det_sorted_bit
- get_all_spin_doubles:
File :
determinants/spindeterminants.irp.fsubroutine get_all_spin_doubles(buffer, idx, spindet, Nint, size_buffer, doubles, n_doubles)
Returns the indices of all the double excitations in the list of unique $alpha$ determinants.
Needs:
n_int
Calls:
get_all_spin_doubles_1()get_all_spin_doubles_2()
get_all_spin_doubles_3()get_all_spin_doubles_4()
get_all_spin_doubles_n_int()
- get_all_spin_doubles_1:
File :
determinants/spindeterminants.irp.fsubroutine get_all_spin_doubles_1(buffer, idx, spindet, size_buffer, doubles, n_doubles)
Returns the indices of all the double excitations in the list of unique $alpha$ determinants.
Called by:
get_all_spin_doubles()
- get_all_spin_doubles_2:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_doubles_2(buffer, idx, spindet, size_buffer, doubles, n_doubles)
Returns the indices of all the double excitations in the list of unique $lpha$ determinants.
Called by:
get_all_spin_doubles()
- get_all_spin_doubles_3:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_doubles_3(buffer, idx, spindet, size_buffer, doubles, n_doubles)
Returns the indices of all the double excitations in the list of unique $lpha$ determinants.
Called by:
get_all_spin_doubles()
- get_all_spin_doubles_4:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_doubles_4(buffer, idx, spindet, size_buffer, doubles, n_doubles)
Returns the indices of all the double excitations in the list of unique $lpha$ determinants.
Called by:
get_all_spin_doubles()
- get_all_spin_doubles_n_int:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_doubles_N_int(buffer, idx, spindet, size_buffer, doubles, n_doubles)
Returns the indices of all the double excitations in the list of unique $lpha$ determinants.
Needs:
n_int
Called by:
get_all_spin_doubles()
- get_all_spin_singles:
File :
determinants/spindeterminants.irp.fsubroutine get_all_spin_singles(buffer, idx, spindet, Nint, size_buffer, singles, n_singles)
Returns the indices of all the single excitations in the list of unique $alpha$ determinants.
Needs:
n_int
Called by:
singles_alpha_cscsingles_alpha_csc_idx
singles_alpha_csc_mapsingles_beta_csc
singles_beta_csc_idxsingles_beta_csc_map
Calls:
get_all_spin_singles_1()get_all_spin_singles_2()
get_all_spin_singles_3()get_all_spin_singles_4()
get_all_spin_singles_n_int()
- get_all_spin_singles_1:
File :
determinants/spindeterminants.irp.fsubroutine get_all_spin_singles_1(buffer, idx, spindet, size_buffer, singles, n_singles)
Returns the indices of all the single excitations in the list of unique $alpha$ determinants.
Called by:
get_all_spin_singles()h_s2_u_0_nstates_openmp_work_1()h_s2_u_0_two_e_nstates_openmp_work_1()
h_u_0_nstates_openmp_work_1()orb_range_2_rdm_openmp_work_1()
orb_range_2_rdm_state_av_openmp_work_1()orb_range_2_trans_rdm_openmp_work_1()
- get_all_spin_singles_2:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_singles_2(buffer, idx, spindet, size_buffer, singles, n_singles)
Returns the indices of all the single excitations in the list of unique $lpha$ determinants.
Called by:
get_all_spin_singles()h_s2_u_0_nstates_openmp_work_2()h_s2_u_0_two_e_nstates_openmp_work_2()
h_u_0_nstates_openmp_work_2()orb_range_2_rdm_openmp_work_2()
orb_range_2_rdm_state_av_openmp_work_2()orb_range_2_trans_rdm_openmp_work_2()
- get_all_spin_singles_3:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_singles_3(buffer, idx, spindet, size_buffer, singles, n_singles)
Returns the indices of all the single excitations in the list of unique $lpha$ determinants.
Called by:
get_all_spin_singles()h_s2_u_0_nstates_openmp_work_3()h_s2_u_0_two_e_nstates_openmp_work_3()
h_u_0_nstates_openmp_work_3()orb_range_2_rdm_openmp_work_3()
orb_range_2_rdm_state_av_openmp_work_3()orb_range_2_trans_rdm_openmp_work_3()
- get_all_spin_singles_4:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_singles_4(buffer, idx, spindet, size_buffer, singles, n_singles)
Returns the indices of all the single excitations in the list of unique $lpha$ determinants.
Called by:
get_all_spin_singles()h_s2_u_0_nstates_openmp_work_4()h_s2_u_0_two_e_nstates_openmp_work_4()
h_u_0_nstates_openmp_work_4()orb_range_2_rdm_openmp_work_4()
orb_range_2_rdm_state_av_openmp_work_4()orb_range_2_trans_rdm_openmp_work_4()
- get_all_spin_singles_and_doubles:
File :
determinants/spindeterminants.irp.fsubroutine get_all_spin_singles_and_doubles(buffer, idx, spindet, Nint, size_buffer, singles, doubles, n_singles, n_doubles)
Returns the indices of all the single and double excitations in the list of unique $alpha$ determinants.
Warning: The buffer is transposed.
Calls:
get_all_spin_singles_and_doubles_1()get_all_spin_singles_and_doubles_2()
get_all_spin_singles_and_doubles_3()get_all_spin_singles_and_doubles_4()
get_all_spin_singles_and_doubles_n_int()
- get_all_spin_singles_and_doubles_1:
File :
determinants/spindeterminants.irp.fsubroutine get_all_spin_singles_and_doubles_1(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles)
Returns the indices of all the single and double excitations in the list of unique $alpha$ determinants.
/!: The buffer is transposed !
Called by:
get_all_spin_singles_and_doubles()h_s2_u_0_nstates_openmp_work_1()h_s2_u_0_two_e_nstates_openmp_work_1()
h_u_0_nstates_openmp_work_1()orb_range_2_rdm_openmp_work_1()
orb_range_2_rdm_state_av_openmp_work_1()orb_range_2_trans_rdm_openmp_work_1()
- get_all_spin_singles_and_doubles_2:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_singles_and_doubles_2(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles)
Returns the indices of all the single and double excitations in the list of unique $lpha$ determinants.
/!: The buffer is transposed !
Called by:
get_all_spin_singles_and_doubles()h_s2_u_0_nstates_openmp_work_2()h_s2_u_0_two_e_nstates_openmp_work_2()
h_u_0_nstates_openmp_work_2()orb_range_2_rdm_openmp_work_2()
orb_range_2_rdm_state_av_openmp_work_2()orb_range_2_trans_rdm_openmp_work_2()
- get_all_spin_singles_and_doubles_3:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_singles_and_doubles_3(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles)
Returns the indices of all the single and double excitations in the list of unique $lpha$ determinants.
/!: The buffer is transposed !
Called by:
get_all_spin_singles_and_doubles()h_s2_u_0_nstates_openmp_work_3()h_s2_u_0_two_e_nstates_openmp_work_3()
h_u_0_nstates_openmp_work_3()orb_range_2_rdm_openmp_work_3()
orb_range_2_rdm_state_av_openmp_work_3()orb_range_2_trans_rdm_openmp_work_3()
- get_all_spin_singles_and_doubles_4:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_singles_and_doubles_4(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles)
Returns the indices of all the single and double excitations in the list of unique $lpha$ determinants.
/!: The buffer is transposed !
Called by:
get_all_spin_singles_and_doubles()h_s2_u_0_nstates_openmp_work_4()h_s2_u_0_two_e_nstates_openmp_work_4()
h_u_0_nstates_openmp_work_4()orb_range_2_rdm_openmp_work_4()
orb_range_2_rdm_state_av_openmp_work_4()orb_range_2_trans_rdm_openmp_work_4()
- get_all_spin_singles_and_doubles_n_int:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_singles_and_doubles_N_int(buffer, idx, spindet, size_buffer, singles, doubles, n_singles, n_doubles)
Returns the indices of all the single and double excitations in the list of unique $lpha$ determinants.
/!: The buffer is transposed !
Needs:
n_int
Called by:
get_all_spin_singles_and_doubles()h_s2_u_0_nstates_openmp_work_n_int()h_s2_u_0_two_e_nstates_openmp_work_n_int()
h_u_0_nstates_openmp_work_n_int()orb_range_2_rdm_openmp_work_n_int()
orb_range_2_rdm_state_av_openmp_work_n_int()orb_range_2_trans_rdm_openmp_work_n_int()
- get_all_spin_singles_n_int:
File :
determinants/spindeterminants.irp.f_template_1365subroutine get_all_spin_singles_N_int(buffer, idx, spindet, size_buffer, singles, n_singles)
Returns the indices of all the single excitations in the list of unique $lpha$ determinants.
Needs:
n_int
Called by:
get_all_spin_singles()h_s2_u_0_nstates_openmp_work_n_int()h_s2_u_0_two_e_nstates_openmp_work_n_int()
h_u_0_nstates_openmp_work_n_int()orb_range_2_rdm_openmp_work_n_int()
orb_range_2_rdm_state_av_openmp_work_n_int()orb_range_2_trans_rdm_openmp_work_n_int()
- get_double_excitation:
File :
determinants/slater_rules.irp.fsubroutine get_double_excitation(det1,det2,exc,phase,Nint)
Returns the two excitation operators between two doubly excited determinants and the phase.
Called by:
diag_h_mat_elem_fock()get_excitation()get_s2()i_h_j()
i_h_j_s2()i_h_j_two_e()i_h_j_verbose()
orb_range_off_diag_double_to_2_rdm_ab_dm_buffer()orb_range_off_diag_double_to_all_states_ab_dm_buffer()orb_range_off_diag_double_to_all_states_ab_trans_rdm_buffer()
- get_double_excitation_spin:
File :
determinants/slater_rules.irp.fsubroutine get_double_excitation_spin(det1,det2,exc,phase,Nint)
Returns the two excitation operators between two doubly excited spin-determinants and the phase.
Called by:
get_excitation_spin()i_h_j_double_spin()orb_range_off_diag_double_to_2_rdm_aa_dm_buffer()
orb_range_off_diag_double_to_2_rdm_bb_dm_buffer()orb_range_off_diag_double_to_all_states_aa_dm_buffer()orb_range_off_diag_double_to_all_states_aa_trans_rdm_buffer()
orb_range_off_diag_double_to_all_states_bb_dm_buffer()orb_range_off_diag_double_to_all_states_trans_rdm_bb_buffer()
- get_excitation:
File :
determinants/slater_rules.irp.fsubroutine get_excitation(det1,det2,exc,degree,phase,Nint)
Returns the excitation operators between two determinants and the phase.
Called by:
example_determinants()
get_phase()
pt2_moller_plesset()
Calls:
get_double_excitation()
get_excitation_degree()
get_single_excitation()
- get_excitation_degree:
File :
determinants/slater_rules.irp.fsubroutine get_excitation_degree(key1,key2,degree,Nint)
Returns the excitation degree between two determinants.
Called by:
connected_to_hf()diag_h_mat_elem_fock()example_determinants()exc_degree_per_selectorsfill_buffer_double()fill_buffer_single()
get_excitation()get_s2()i_h_j()i_h_j_one_e()i_h_j_s2()i_h_j_two_e()
i_h_j_verbose()max_degree_excpsi_configuration_to_psi_detpsi_non_caspt2_qdpt()
- get_excitation_degree_spin:
File :
determinants/slater_rules.irp.fsubroutine get_excitation_degree_spin(key1,key2,degree,Nint)
Returns the excitation degree between two determinants.
Called by:
fill_buffer_double()fill_buffer_single()get_excitation_spin()
multi_s_dipole_momentone_e_dm_mo_alphaone_e_tr_dm_mo
one_e_tr_dm_mo_alphaselect_singles_and_doubles()
- get_excitation_degree_vector:
File :
determinants/slater_rules.irp.fsubroutine get_excitation_degree_vector(key1,key2,degree,Nint,sze,idx)
Applies get_excitation_degree to an array of determinants.
Called by:
routine_example_psi_det()
- get_excitation_degree_vector_double_alpha_beta:
File :
determinants/slater_rules.irp.fsubroutine get_excitation_degree_vector_double_alpha_beta(key1,key2,degree,Nint,sze,idx)
Applies get_excitation_degree to an array of determinants and return only the single excitations and the connections through exchange integrals.
- get_excitation_degree_vector_single:
File :
determinants/slater_rules.irp.fsubroutine get_excitation_degree_vector_single(key1,key2,degree,Nint,sze,idx)
Applies get_excitation_degree to an array of determinants and returns only the single excitations.
- get_excitation_degree_vector_single_or_exchange:
File :
determinants/slater_rules.irp.fsubroutine get_excitation_degree_vector_single_or_exchange(key1,key2,degree,Nint,sze,idx)
Applies get_excitation_degree to an array of determinants and return only the single excitations and the connections through exchange integrals.
- get_excitation_degree_vector_single_or_exchange_verbose:
File :
determinants/slater_rules.irp.fsubroutine get_excitation_degree_vector_single_or_exchange_verbose(key1,key2,degree,Nint,sze,idx)
Applies get_excitation_degree to an array of determinants and return only the single excitations and the connections through exchange integrals.
Needs:
n_int
Calls:
debug_det()
- get_excitation_general:
File :
determinants/slater_rules_general.irp.fsubroutine get_excitation_general(key_i,key_j, Nint,degree_array,holes_array, particles_array,phase)
returns the array, for each spin, of holes/particles between key_i and key_j
with the following convention: a^+_{particle} a_{hole}|key_i> = |key_j>
Needs:
n_int
Calls:
do_single_excitation()
get_single_excitation()
- get_excitation_spin:
File :
determinants/slater_rules.irp.fsubroutine get_excitation_spin(det1,det2,exc,degree,phase,Nint)
Returns the excitation operators between two determinants and the phase.
Calls:
get_double_excitation_spin()
get_excitation_degree_spin()
get_single_excitation_spin()
- get_holes_general:
File :
determinants/slater_rules_general.irp.fsubroutine get_holes_general(key_i, key_j,Nint, holes_array)
returns the array, per spin, of holes between key_i and key_j
with the following convention: a_{hole}|key_i> –> |key_j>
Needs:
n_int
- get_index_in_psi_det_alpha_unique:
File :
determinants/spindeterminants.irp.finteger function get_index_in_psi_det_alpha_unique(key,Nint)
Returns the index of the determinant in the
psi_det_alpha_uniquearrayNeeds:
psi_det_alpha_unique
- get_index_in_psi_det_beta_unique:
File :
determinants/spindeterminants.irp.finteger function get_index_in_psi_det_beta_unique(key,Nint)
Returns the index of the determinant in the
psi_det_beta_uniquearrayNeeds:
psi_det_beta_unique
- get_index_in_psi_det_sorted_bit:
File :
determinants/connected_to_ref.irp.finteger function get_index_in_psi_det_sorted_bit(key,Nint)
Returns the index of the determinant in the
psi_det_sorted_bitarray using a binary searchNeeds:
n_det
psi_det_sorted_bit
- get_occupation_from_dets:
File :
determinants/density_matrix.irp.fsubroutine get_occupation_from_dets(istate,occupation)
Returns the average occupation of the MOs
Needs:
mo_numn_det
n_intpsi_coef
psi_det
Calls:
bitstring_to_list_ab()
- get_particles_general:
File :
determinants/slater_rules_general.irp.fsubroutine get_particles_general(key_i, key_j,Nint,particles_array)
returns the array, per spin, of particles between key_i and key_j
with the following convention: a^dagger_{particle}|key_i> –> |key_j>
Needs:
n_int
Calls:
debug_det()
- get_phase:
File :
determinants/slater_rules.irp.fsubroutine get_phase(key1,key2,phase,Nint)
Returns the phase between key1 and key2.
Called by:
build_singly_excited_wavefunction()
Calls:
get_excitation()
- get_phase_general:
File :
determinants/slater_rules_general.irp.fsubroutine get_phase_general(key_i,Nint,degree, holes_array, particles_array,phase)
Needs:
n_int
Calls:
do_single_excitation()
get_single_excitation()
- get_phasemask_bit:
File :
determinants/slater_rules.irp.fsubroutine get_phasemask_bit(det1, pm, Nint)
- get_s2:
File :
determinants/s2.irp.fsubroutine get_s2(key_i,key_j,Nint,s2)
Returns $langle S^2 rangle - S_z^2 S_z$
Called by:
get_uj_s2_ui()h_s2_u_0_nstates_openmp_work_1()h_s2_u_0_nstates_openmp_work_2()h_s2_u_0_nstates_openmp_work_3()h_s2_u_0_nstates_openmp_work_4()
h_s2_u_0_nstates_openmp_work_n_int()h_s2_u_0_two_e_nstates_openmp_work_1()h_s2_u_0_two_e_nstates_openmp_work_2()h_s2_u_0_two_e_nstates_openmp_work_3()h_s2_u_0_two_e_nstates_openmp_work_4()
h_s2_u_0_two_e_nstates_openmp_work_n_int()i_s2_psi_minilist()s2_matrix_all_detss2_u_0_nstates()
Calls:
get_double_excitation()
get_excitation_degree()
- get_single_excitation:
File :
determinants/slater_rules.irp.fsubroutine get_single_excitation(det1,det2,exc,phase,Nint)
Returns the excitation operator between two singly excited determinants and the phase.
Called by:
connected_to_hf()diag_h_mat_elem_fock()do_signed_mono_excitation()get_excitation()get_excitation_general()get_phase_general()i_h_j()
i_h_j_one_e()i_h_j_s2()i_h_j_two_e()i_h_j_verbose()orb_range_off_diag_single_to_2_rdm_aa_dm_buffer()orb_range_off_diag_single_to_2_rdm_ab_dm_buffer()orb_range_off_diag_single_to_2_rdm_bb_dm_buffer()
orb_range_off_diag_single_to_all_states_aa_dm_buffer()orb_range_off_diag_single_to_all_states_aa_trans_rdm_buffer()orb_range_off_diag_single_to_all_states_ab_dm_buffer()orb_range_off_diag_single_to_all_states_ab_trans_rdm_buffer()orb_range_off_diag_single_to_all_states_bb_dm_buffer()orb_range_off_diag_single_to_all_states_bb_trans_rdm_buffer()
- get_single_excitation_from_fock:
File :
determinants/single_excitations.irp.fsubroutine get_single_excitation_from_fock(det_1,det_2,h,p,spin,phase,hij)
Needs:
big_array_coulomb_integralsfock_operator_closed_shell_ref_bitmask
mo_numn_int
ref_closed_shell_bitmask
Called by:
i_h_j()
i_h_j_s2()
i_h_j_single_spin()
Calls:
bitstring_to_list_ab()
- get_single_excitation_spin:
File :
determinants/slater_rules.irp.fsubroutine get_single_excitation_spin(det1,det2,exc,phase,Nint)
Returns the excitation operator between two singly excited determinants and the phase.
Called by:
get_excitation_spin()i_h_j_double_alpha_beta()i_h_j_mono_spin_one_e()
i_h_j_single_spin()i_wee_j_single()multi_s_dipole_moment
one_e_dm_mo_alphaone_e_tr_dm_moone_e_tr_dm_mo_alpha
- get_uj_s2_ui:
File :
determinants/s2.irp.fsubroutine get_uJ_s2_uI(psi_keys_tmp,psi_coefs_tmp,n,nmax_coefs,nmax_keys,s2,nstates)
returns the matrix elements of S^2 “s2(i,j)” between the “nstates” states psi_coefs_tmp(:,i) and psi_coefs_tmp(:,j)
Needs:
n_int
Calls:
filter_connected()
get_s2()
- getmobiles:
File :
determinants/filter_connected.irp.fsubroutine getMobiles(key,key_mask, mobiles,Nint)
Needs:
mo_num
Called by:
perturb_buffer_dummy()perturb_buffer_epstein_nesbet()
perturb_buffer_epstein_nesbet_2x2()perturb_buffer_epstein_nesbet_2x2_no_ci_diag()
perturb_buffer_moller_plesset()perturb_buffer_qdpt()
Calls:
bitstring_to_list()
- i_h_j:
File :
determinants/slater_rules.irp.fsubroutine i_H_j(key_i,key_j,Nint,hij)
Returns $langle i|H|j rangle$ where $i$ and $j$ are determinants.
Needs:
big_array_coulomb_integralsbig_array_coulomb_integrals
mo_integrals_map
mo_two_e_integrals_in_map
Called by:
calc_hess_elem()coef_hf_selectorconnected_to_hf()example_determinants()get_d0()get_d0_reference()
get_d1()get_d1_reference()get_m0()get_m1()h_matrix_all_detsh_matrix_cas
h_matrix_diag_all_detsi_h_psi()i_h_psi_minilist()pt2_qdpt()routine_example_psi_det()
Calls:
bitstring_to_list_ab()get_double_excitation()
get_excitation_degree()get_single_excitation()
get_single_excitation_from_fock()
- i_h_j_double_alpha_beta:
File :
determinants/slater_rules.irp.fsubroutine i_H_j_double_alpha_beta(key_i,key_j,Nint,hij)
Returns $langle i|H|j rangle$ where $i$ and $j$ are determinants differing by an opposite-spin double excitation.
Needs:
big_array_coulomb_integralsbig_array_coulomb_integrals
mo_integrals_map
mo_two_e_integrals_in_map
Called by:
h_s2_u_0_nstates_openmp_work_1()h_s2_u_0_nstates_openmp_work_2()h_s2_u_0_nstates_openmp_work_3()h_s2_u_0_nstates_openmp_work_4()h_s2_u_0_nstates_openmp_work_n_int()
h_s2_u_0_two_e_nstates_openmp_work_1()h_s2_u_0_two_e_nstates_openmp_work_2()h_s2_u_0_two_e_nstates_openmp_work_3()h_s2_u_0_two_e_nstates_openmp_work_4()h_s2_u_0_two_e_nstates_openmp_work_n_int()
h_u_0_nstates_openmp_work_1()h_u_0_nstates_openmp_work_2()h_u_0_nstates_openmp_work_3()h_u_0_nstates_openmp_work_4()h_u_0_nstates_openmp_work_n_int()
Calls:
get_single_excitation_spin()
- i_h_j_double_spin:
File :
determinants/slater_rules.irp.fsubroutine i_H_j_double_spin(key_i,key_j,Nint,hij)
Returns $langle i|H|j rangle$ where $i$ and $j$ are determinants differing by a same-spin double excitation.
Needs:
big_array_coulomb_integrals
mo_integrals_map
mo_two_e_integrals_in_map
Called by:
h_s2_u_0_nstates_openmp_work_1()h_s2_u_0_nstates_openmp_work_2()h_s2_u_0_nstates_openmp_work_3()h_s2_u_0_nstates_openmp_work_4()h_s2_u_0_nstates_openmp_work_n_int()
h_s2_u_0_two_e_nstates_openmp_work_1()h_s2_u_0_two_e_nstates_openmp_work_2()h_s2_u_0_two_e_nstates_openmp_work_3()h_s2_u_0_two_e_nstates_openmp_work_4()h_s2_u_0_two_e_nstates_openmp_work_n_int()
h_u_0_nstates_openmp_work_1()h_u_0_nstates_openmp_work_2()h_u_0_nstates_openmp_work_3()h_u_0_nstates_openmp_work_4()h_u_0_nstates_openmp_work_n_int()
Calls:
get_double_excitation_spin()
- i_h_j_mono_spin_one_e:
File :
determinants/slater_rules_wee_mono.irp.fsubroutine i_H_j_mono_spin_one_e(key_i,key_j,Nint,spin,hij)
Returns $langle i|H|j rangle$ where $i$ and $j$ are determinants differing by a single excitation.
Needs:
mo_one_e_integrals
Calls:
get_single_excitation_spin()
- i_h_j_one_e:
File :
determinants/slater_rules_wee_mono.irp.fsubroutine i_H_j_one_e(key_i,key_j,Nint,hij)
Returns $langle i|H|j rangle$ where $i$ and $j$ are determinants.
Needs:
mo_one_e_integrals
n_int
Calls:
get_excitation_degree()
get_single_excitation()
- i_h_j_s2:
File :
determinants/slater_rules.irp.fsubroutine i_H_j_s2(key_i,key_j,Nint,hij,s2)
Returns $langle i|H|j rangle$ and $langle i|S^2|j rangle$ where $i$ and $j$ are determinants.
Needs:
big_array_coulomb_integralsbig_array_coulomb_integrals
mo_integrals_map
mo_two_e_integrals_in_map
Calls:
bitstring_to_list_ab()get_double_excitation()
get_excitation_degree()get_single_excitation()
get_single_excitation_from_fock()
- i_h_j_single_spin:
File :
determinants/slater_rules.irp.fsubroutine i_H_j_single_spin(key_i,key_j,Nint,spin,hij)
Returns $langle i|H|j rangle$ where $i$ and $j$ are determinants differing by a single excitation.
Needs:
big_array_coulomb_integrals
mo_two_e_integrals_in_map
Called by:
h_s2_u_0_nstates_openmp_work_1()h_s2_u_0_nstates_openmp_work_2()h_s2_u_0_nstates_openmp_work_3()h_s2_u_0_nstates_openmp_work_4()
h_s2_u_0_nstates_openmp_work_n_int()h_u_0_nstates_openmp_work_1()h_u_0_nstates_openmp_work_2()
h_u_0_nstates_openmp_work_3()h_u_0_nstates_openmp_work_4()h_u_0_nstates_openmp_work_n_int()
Calls:
get_single_excitation_from_fock()
get_single_excitation_spin()
- i_h_j_two_e:
File :
determinants/slater_rules_wee_mono.irp.fsubroutine i_H_j_two_e(key_i,key_j,Nint,hij)
Returns $langle i|H|j rangle$ where $i$ and $j$ are determinants.
Needs:
big_array_coulomb_integralsbig_array_coulomb_integrals
mo_integrals_mapmo_two_e_integrals_in_map
ref_bitmask_energy
Called by:
psi_energy_two_e_trans
Calls:
bitstring_to_list_ab()get_double_excitation()
get_excitation_degree()get_single_excitation()
single_excitation_wee()
- i_h_j_verbose:
File :
determinants/slater_rules.irp.fsubroutine i_H_j_verbose(key_i,key_j,Nint,hij,hmono,hdouble,phase)
Returns $langle i|H|j rangle$ where $i$ and $j$ are determinants.
Needs:
elec_alpha_numelec_beta_num
mo_integrals_mapmo_one_e_integrals
mo_two_e_integrals_in_map
Calls:
bitstring_to_list_ab()get_double_excitation()
get_excitation_degree()
get_single_excitation()
- i_h_psi:
File :
determinants/slater_rules.irp.fsubroutine i_H_psi(key,keys,coef,Nint,Ndet,Ndet_max,Nstate,i_H_psi_array)
Computes $langle i|H|Psi rangle = sum_J c_J langle i | H | J rangle$.
Uses filter_connected_i_H_psi0 to get all the $|J rangle$ to which $|i rangle$ is connected. The i_H_psi_minilist is much faster but requires to build the minilists.
Called by:
calc_grad_elem()calc_hess_elem()
pt2_epstein_nesbet_2x2()pt2_epstein_nesbet_2x2_no_ci_diag()
remove_small_contributions()
Calls:
filter_connected_i_h_psi0()
i_h_j()
- i_h_psi_minilist:
File :
determinants/slater_rules.irp.fsubroutine i_H_psi_minilist(key,keys,idx_key,N_minilist,coef,Nint,Ndet,Ndet_max,Nstate,i_H_psi_array)
Computes $langle i|H|Psi rangle = sum_J c_J langle i|H|Jrangle$.
Uses filter_connected_i_H_psi0 to get all the $|J rangle$ to which $|i rangle$ is connected. The $|Jrangle$ are searched in short pre-computed lists.
Called by:
pt2_dummy()pt2_epstein_nesbet()
pt2_moller_plesset()
pt2_qdpt()
Calls:
filter_connected_i_h_psi0()
i_h_j()
- i_s2_psi_minilist:
File :
determinants/s2.irp.fsubroutine i_S2_psi_minilist(key,keys,idx_key,N_minilist,coef,Nint,Ndet,Ndet_max,Nstate,i_S2_psi_array)
Computes $langle i|S^2|Psi rangle = sum_J c_J langle i|S^2|J rangle$.
Uses filter_connected_i_H_psi0 to get all the $|Jrangle$ to which $|irangle$ is connected. The $|Jrangle$ are searched in short pre-computed lists.
Calls:
filter_connected_i_h_psi0()
get_s2()
- i_wee_j_single:
File :
determinants/slater_rules_wee_mono.irp.fsubroutine i_Wee_j_single(key_i,key_j,Nint,spin,hij)
Returns $langle i|H|j rangle$ where $i$ and $j$ are determinants differing by a single excitation.
Needs:
big_array_coulomb_integrals
mo_two_e_integrals_in_map
Called by:
h_s2_u_0_two_e_nstates_openmp_work_1()h_s2_u_0_two_e_nstates_openmp_work_2()
h_s2_u_0_two_e_nstates_openmp_work_3()h_s2_u_0_two_e_nstates_openmp_work_4()
h_s2_u_0_two_e_nstates_openmp_work_n_int()
Calls:
get_single_excitation_spin()
single_excitation_wee()
- is_connected_to:
File :
determinants/connected_to_ref.irp.flogical function is_connected_to(key,keys,Nint,Ndet)
Returns
trueif determinantkeyis connected tokeys
- is_connected_to_by_single:
File :
determinants/connected_to_ref.irp.flogical function is_connected_to_by_single(key,keys,Nint,Ndet)
Returns
trueiskeyis connected tokeysby a single excitation.
- is_in_wavefunction:
File :
determinants/connected_to_ref.irp.flogical function is_in_wavefunction(key,Nint)
trueif the determinantdetis in the wave function
- is_spin_flip_possible:
File :
determinants/create_excitations.irp.flogical function is_spin_flip_possible(key_in,i_flip,ispin)
returns
trueif the spin-flip of spin ispin in the orbital i_flip is possible on key_inNeeds:
n_int
- print_dipole_moments:
File :
determinants/dipole_moments.irp.fsubroutine print_dipole_moments
Needs:
n_states
z_dipole_moment
- read_dets:
File :
determinants/determinants.irp.fsubroutine read_dets(det,Nint,Ndet)
Reads the determinants from the EZFIO file
Called by:
psi_det
Calls:
ezfio_get_determinants_bit_kind()
ezfio_get_determinants_n_int()
ezfio_get_determinants_psi_det()
- read_spindeterminants:
File :
determinants/spindeterminants.irp.fsubroutine read_spindeterminants
Needs:
n_detpsi_det_alpha_uniquepsi_det_beta_uniquen_states
psi_bilinear_matrix_valuespsi_bilinear_matrix_valuespsi_bilinear_matrix_values
psi_bilinear_matrix_valuespsi_det_alpha_uniquepsi_det_beta_unique
Calls:
ezfio_get_spindeterminants_n_det()ezfio_get_spindeterminants_n_det_alpha()ezfio_get_spindeterminants_n_det_beta()ezfio_get_spindeterminants_n_states()
ezfio_get_spindeterminants_psi_coef_matrix_columns()ezfio_get_spindeterminants_psi_coef_matrix_rows()ezfio_get_spindeterminants_psi_coef_matrix_values()
ezfio_get_spindeterminants_psi_det_alpha()ezfio_get_spindeterminants_psi_det_beta()wf_of_psi_bilinear_matrix()
Touches:
n_detpsi_det_alpha_uniquepsi_det_beta_uniquen_states
psi_bilinear_matrix_valuespsi_bilinear_matrix_valuespsi_bilinear_matrix_valuespsi_bilinear_matrix_values
psi_coefpsi_detpsi_det_alpha_uniquepsi_det_beta_unique
- remove_duplicates_in_psi_det:
File :
determinants/h_apply.irp.fsubroutine remove_duplicates_in_psi_det(found_duplicates)
Removes duplicate determinants in the wave function.
Needs:
c0_weightn_detn_int
psi_coefpsi_det_sorted_bitpsi_det
psi_det_sortedpsi_det_sorted_bit
Called by:
copy_h_apply_buffer_to_wf()
Touches:
n_detc0_weight
psi_coefpsi_det_sorted_bit
psi_detpsi_det_sorted_bit
- replace_wf:
File :
determinants/h_apply.irp.fsubroutine replace_wf(N_det_new, LDA, psi_coef_new, psi_det_new)
Replaces the wave function. After calling this subroutine, N_det, psi_det and psi_coef need to be touched
Needs:
h_apply_buffer_allocatedn_det
n_intn_states
nprocpsi_coef
Calls:
abort()
copy_h_apply_buffer_to_wf()
fill_h_apply_buffer_no_selection()
Touches:
n_detc0_weightpsi_coef
psi_det_sorted_bitpsi_det
psi_det_sizepsi_det_sorted_bit
- resize_h_apply_buffer:
File :
determinants/h_apply.irp.fsubroutine resize_H_apply_buffer(new_size,iproc)
Resizes the H_apply buffer of proc iproc. The buffer lock should be set before calling this function.
Needs:
h_apply_buffer_allocatedn_det
n_intn_states
nproc
Called by:
fill_h_apply_buffer_no_selection()
fill_h_apply_buffer_selection()
Calls:
abort()
- routine_example_psi_det:
File :
determinants/example.irp.fsubroutine routine_example_psi_det
subroutine that illustrates the main features available in determinants using many determinants
Needs:
n_detn_int
n_statespsi_coef
psi_det
Called by:
example_determinants_psi_det()
Calls:
debug_det()
get_excitation_degree_vector()
i_h_j()
- s2_u_0:
File :
determinants/s2.irp.fsubroutine S2_u_0(v_0,u_0,n,keys_tmp,Nint)
Computes v_0 = S^2|u_0>
n : number of determinants
Calls:
s2_u_0_nstates()
- s2_u_0_nstates:
File :
determinants/s2.irp.fsubroutine S2_u_0_nstates(v_0,u_0,n,keys_tmp,Nint,N_st,sze_8)
Computes v_0 = S^2|u_0>
n : number of determinants
Needs:
ref_bitmask_energy
Called by:
s2_u_0()
u_0_s2_u_0()
Calls:
get_s2()
sort_dets_ab_v()
sort_dets_ba_v()
- save_natural_mos:
File :
determinants/density_matrix.irp.fsubroutine save_natural_mos
Save natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
Needs:
ao_num
mo_coef
mo_num
Calls:
nullify_small_elements()orthonormalize_mos()
save_mos()
set_natural_mos()
Touches:
mo_coef
mo_occ
- save_natural_mos_canon_label:
File :
determinants/density_matrix.irp.fsubroutine save_natural_mos_canon_label
Save natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
Needs:
ao_num
mo_coef
mo_num
Calls:
nullify_small_elements()orthonormalize_mos()
save_mos()
set_natural_mos_canon_label()
Touches:
mo_coef
mo_occ
- save_natural_mos_no_ov_rot:
File :
determinants/density_matrix.irp.fsubroutine save_natural_mos_no_ov_rot
Save natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
Needs:
ao_num
mo_coef
mo_num
Calls:
nullify_small_elements()orthonormalize_mos()
save_mos()
set_natorb_no_ov_rot()
Touches:
mo_coef
mo_occ
- save_ref_determinant:
File :
determinants/determinants.irp.fsubroutine save_ref_determinant
Needs:
n_states
ref_bitmask
Calls:
save_wavefunction_general()
- save_wavefunction:
File :
determinants/determinants.irp.fsubroutine save_wavefunction
Save the wave function into the EZFIO file
Needs:
mpi_mastern_det
n_statespsi_det_sorted
read_wf
Called by:
run_cipsi()
run_stochastic_cipsi()
Calls:
save_wavefunction_general()
- save_wavefunction_general:
File :
determinants/determinants.irp.fsubroutine save_wavefunction_general(ndet,nstates,psidet,dim_psicoef,psicoef)
Save the wave function into the EZFIO file
Needs:
mo_labelmpi_master
n_det_qp_edit
n_int
Called by:
save_ref_determinant()save_wavefunction()
save_wavefunction_truncated()
save_wavefunction_unsorted()
Calls:
ezfio_set_determinants_bit_kind()ezfio_set_determinants_mo_label()ezfio_set_determinants_n_det()ezfio_set_determinants_n_det_qp_edit()
ezfio_set_determinants_n_int()ezfio_set_determinants_n_states()ezfio_set_determinants_psi_coef()ezfio_set_determinants_psi_coef_qp_edit()
ezfio_set_determinants_psi_det()ezfio_set_determinants_psi_det_qp_edit()normalize()write_int()
- save_wavefunction_general_unormalized:
File :
determinants/determinants.irp.fsubroutine save_wavefunction_general_unormalized(ndet,nstates,psidet,dim_psicoef,psicoef)
Save the wave function into the EZFIO file
Needs:
mo_labelmpi_master
n_det_qp_edit
n_int
Calls:
ezfio_set_determinants_bit_kind()ezfio_set_determinants_mo_label()ezfio_set_determinants_n_det()ezfio_set_determinants_n_det_qp_edit()
ezfio_set_determinants_n_int()ezfio_set_determinants_n_states()ezfio_set_determinants_psi_coef()ezfio_set_determinants_psi_coef_qp_edit()
ezfio_set_determinants_psi_det()ezfio_set_determinants_psi_det_qp_edit()write_int()
- save_wavefunction_specified:
File :
determinants/determinants.irp.fsubroutine save_wavefunction_specified(ndet,nstates,psidet,psicoef,ndetsave,index_det_save)
Save the wave function into the EZFIO file
Needs:
mo_labelmpi_master
n_det_qp_edit
n_int
Calls:
ezfio_set_determinants_bit_kind()ezfio_set_determinants_mo_label()ezfio_set_determinants_n_det()ezfio_set_determinants_n_det_qp_edit()
ezfio_set_determinants_n_int()ezfio_set_determinants_n_states()ezfio_set_determinants_psi_coef()
ezfio_set_determinants_psi_det()ezfio_set_determinants_psi_det_qp_edit()write_int()
- save_wavefunction_truncated:
File :
determinants/determinants.irp.fsubroutine save_wavefunction_truncated(thr)
Save the wave function into the EZFIO file
Needs:
mpi_mastern_det
n_statespsi_coef
psi_det_sorted
Calls:
nullify_small_elements()
save_wavefunction_general()
Touches:
psi_coef
- save_wavefunction_unsorted:
File :
determinants/determinants.irp.fsubroutine save_wavefunction_unsorted
Save the wave function into the EZFIO file
Needs:
mpi_mastern_det
n_statespsi_coef
psi_det
Called by:
run_orb_opt_trust_v2()
update_parameters()
Calls:
save_wavefunction_general()
- set_natorb_no_ov_rot:
File :
determinants/density_matrix.irp.fsubroutine set_natorb_no_ov_rot
Set natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
Needs:
list_core_inact_actlist_virtmo_num
mo_occn_core_inact_act_orb
n_virt_orbone_e_dm_mo
Called by:
save_natural_mos_no_ov_rot()
Calls:
mo_as_svd_vectors_of_mo_matrix_eig()
Touches:
mo_occ
- set_natural_mos:
File :
determinants/density_matrix.irp.fsubroutine set_natural_mos
Set natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
Needs:
list_core_inact_actlist_virtmo_num
mo_occn_core_inact_act_orb
n_virt_orbone_e_dm_mo
Called by:
save_natural_mos()
Calls:
mo_as_svd_vectors_of_mo_matrix_eig()
Touches:
mo_occ
- set_natural_mos_canon_label:
File :
determinants/density_matrix.irp.fsubroutine set_natural_mos_canon_label
Set natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
Needs:
list_core_inact_actlist_virtmo_num
mo_occn_core_inact_act_orb
n_virt_orbone_e_dm_mo
Called by:
save_natural_mos_canon_label()
Calls:
mo_as_svd_vectors_of_mo_matrix_eig()
Touches:
mo_occ
- single_excitation_wee:
File :
determinants/single_excitation_two_e.irp.fsubroutine single_excitation_wee(det_1,det_2,h,p,spin,phase,hij)
Needs:
big_array_coulomb_integralsfock_wee_closed_shell
n_int
ref_closed_shell_bitmask
Called by:
i_h_j_two_e()
i_wee_j_single()
Calls:
bitstring_to_list_ab()
- sort_dets_ab:
File :
determinants/sort_dets_ab.irp.fsubroutine sort_dets_ab(key, idx, shortcut, N_key, Nint)
Deprecated routine
Calls:
tamiser()
- sort_dets_ab_v:
File :
determinants/sort_dets_ab.irp.fsubroutine sort_dets_ab_v(key_in, key_out, idx, shortcut, version, N_key, Nint)
Deprecated routine
Called by:
s2_u_0_nstates()
sort_dets_ba_v()
Calls:
tamiser()
- sort_dets_ba_v:
File :
determinants/sort_dets_ab.irp.fsubroutine sort_dets_ba_v(key_in, key_out, idx, shortcut, version, N_key, Nint)
Deprecated routine
Called by:
s2_u_0_nstates()
Calls:
sort_dets_ab_v()
- sort_dets_by_det_search_key:
File :
determinants/determinants.irp.fsubroutine sort_dets_by_det_search_key(Ndet, det_in, coef_in, sze, det_out, coef_out, N_st)
Determinants are sorted according to their
det_search_key(). Useful to accelerate the search of a random determinant in the wave function./!The first dimension of coef_out and coef_in need to be psi_det_size
Needs:
n_int
Called by:
psi_cas_sorted_bit
psi_det_sorted_bit
psi_non_cas_sorted_bit
Calls:
i8sort()
- spin_det_search_key:
File :
determinants/spindeterminants.irp.finteger*8 function spin_det_search_key(det,Nint)
Returns an integer(8) corresponding to a determinant index for searching
- tamiser:
File :
determinants/sort_dets_ab.irp.fsubroutine tamiser(key, idx, no, n, Nint, N_key)
Called by:
sort_dets_ab()
sort_dets_ab_v()
- u_0_s2_u_0:
File :
determinants/s2.irp.fsubroutine u_0_S2_u_0(e_0,u_0,n,keys_tmp,Nint,N_st,sze_8)
Computes e_0 = <u_0|S2|u_0>/<u_0|u_0>
n : number of determinants
Called by:
ci_electronic_energy
s2_values
Calls:
s2_u_0_nstates()
- update_wf_of_psi_bilinear_matrix:
File :
determinants/spindeterminants.irp.fsubroutine update_wf_of_psi_bilinear_matrix(truncate)
Updates a wave function when psi_bilinear_matrix was modified
Needs:
n_detpsi_det_alpha_uniquepsi_det_beta_uniquen_int
n_statespsi_bilinear_matrixpsi_coefpsi_det
psi_det_alpha_uniquepsi_det_beta_uniquepsi_det_sortedpsi_det_sorted_bit
Called by:
create_wf_of_psi_bilinear_matrix()
Touches:
n_detpsi_det_alpha_uniquepsi_det_beta_unique
psi_coefpsi_det
psi_det_alpha_uniquepsi_det_beta_unique
- wf_of_psi_bilinear_matrix:
File :
determinants/spindeterminants.irp.fsubroutine wf_of_psi_bilinear_matrix(truncate)
Generate a wave function containing all possible products of $alpha$ and $beta$ determinants
Needs:
n_detn_intn_states
psi_bilinear_matrix_valuespsi_coefpsi_det
psi_det_alpha_uniquepsi_det_beta_uniquepsi_det_sorted
Called by:
read_spindeterminants()
Touches:
n_det
psi_coef
psi_det
- write_spindeterminants:
File :
determinants/spindeterminants.irp.fsubroutine write_spindeterminants
Needs:
n_detn_int
n_statespsi_bilinear_matrix_values
psi_det_alpha_uniquepsi_det_beta_unique
Calls:
ezfio_set_spindeterminants_bit_kind()ezfio_set_spindeterminants_n_det()ezfio_set_spindeterminants_n_det_alpha()ezfio_set_spindeterminants_n_det_beta()
ezfio_set_spindeterminants_n_int()ezfio_set_spindeterminants_n_states()ezfio_set_spindeterminants_psi_coef_matrix_columns()ezfio_set_spindeterminants_psi_coef_matrix_rows()
ezfio_set_spindeterminants_psi_coef_matrix_values()ezfio_set_spindeterminants_psi_det_alpha()ezfio_set_spindeterminants_psi_det_beta()
- zmq_get_n_det:
File :
determinants/zmq.irp.f_template_379integer function zmq_get_N_det(zmq_to_qp_run_socket, worker_id)
Get N_det from the qp_run scheduler
Needs:
mpi_master
n_det
zmq_state
- zmq_get_n_det_alpha_unique:
File :
determinants/zmq.irp.f_template_379integer function zmq_get_N_det_alpha_unique(zmq_to_qp_run_socket, worker_id)
Get N_det_alpha_unique from the qp_run scheduler
Needs:
mpi_master
psi_det_alpha_unique
zmq_state
- zmq_get_n_det_beta_unique:
File :
determinants/zmq.irp.f_template_379integer function zmq_get_N_det_beta_unique(zmq_to_qp_run_socket, worker_id)
Get N_det_beta_unique from the qp_run scheduler
Needs:
mpi_master
psi_det_beta_unique
zmq_state
- zmq_get_n_states:
File :
determinants/zmq.irp.f_template_379integer function zmq_get_N_states(zmq_to_qp_run_socket, worker_id)
Get N_states from the qp_run scheduler
Needs:
mpi_master
n_states
zmq_state
- zmq_get_psi:
File :
determinants/zmq.irp.finteger function zmq_get_psi(zmq_to_qp_run_socket, worker_id)
Get the wave function from the qp_run scheduler
Needs:
n_detn_states
psi_coefpsi_det
psi_det_size
Touches:
n_detn_states
psi_coefpsi_det
psi_det_size
- zmq_get_psi_bilinear:
File :
determinants/zmq.irp.finteger function zmq_get_psi_bilinear(zmq_to_qp_run_socket, worker_id)
Get the wave function from the qp_run scheduler
Needs:
n_detpsi_det_alpha_uniquepsi_det_beta_uniquen_statespsi_bilinear_matrix_values
psi_bilinear_matrix_valuespsi_bilinear_matrix_valuespsi_bilinear_matrix_valuespsi_coef
psi_detpsi_det_alpha_uniquepsi_det_beta_uniquepsi_det_size
Touches:
n_detpsi_det_alpha_uniquepsi_det_beta_uniquen_statespsi_bilinear_matrix_values
psi_bilinear_matrix_valuespsi_bilinear_matrix_valuespsi_bilinear_matrix_valuespsi_coef
psi_detpsi_det_alpha_uniquepsi_det_beta_uniquepsi_det_size
- zmq_get_psi_bilinear_matrix_columns:
File :
determinants/zmq.irp.f_template_500integer*8 function zmq_get_psi_bilinear_matrix_columns(zmq_to_qp_run_socket,worker_id)
Get psi_bilinear_matrix_columns on the qp_run scheduler
Needs:
psi_bilinear_matrix_values
- zmq_get_psi_bilinear_matrix_order:
File :
determinants/zmq.irp.f_template_500integer*8 function zmq_get_psi_bilinear_matrix_order(zmq_to_qp_run_socket,worker_id)
Get psi_bilinear_matrix_order on the qp_run scheduler
Needs:
psi_bilinear_matrix_values
- zmq_get_psi_bilinear_matrix_rows:
File :
determinants/zmq.irp.f_template_500integer*8 function zmq_get_psi_bilinear_matrix_rows(zmq_to_qp_run_socket,worker_id)
Get psi_bilinear_matrix_rows on the qp_run scheduler
Needs:
psi_bilinear_matrix_values
- zmq_get_psi_bilinear_matrix_values:
File :
determinants/zmq.irp.f_template_564integer*8 function zmq_get_psi_bilinear_matrix_values(zmq_to_qp_run_socket,worker_id)
get psi_bilinear_matrix_values on the qp_run scheduler
Needs:
psi_bilinear_matrix_values
- zmq_get_psi_coef:
File :
determinants/zmq.irp.f_template_564integer*8 function zmq_get_psi_coef(zmq_to_qp_run_socket,worker_id)
get psi_coef on the qp_run scheduler
Needs:
psi_coef
- zmq_get_psi_det:
File :
determinants/zmq.irp.f_template_440integer*8 function zmq_get_psi_det(zmq_to_qp_run_socket,worker_id)
Get psi_det on the qp_run scheduler
Needs:
psi_det
- zmq_get_psi_det_alpha_unique:
File :
determinants/zmq.irp.f_template_440integer*8 function zmq_get_psi_det_alpha_unique(zmq_to_qp_run_socket,worker_id)
Get psi_det_alpha_unique on the qp_run scheduler
Needs:
psi_det_alpha_unique
- zmq_get_psi_det_beta_unique:
File :
determinants/zmq.irp.f_template_440integer*8 function zmq_get_psi_det_beta_unique(zmq_to_qp_run_socket,worker_id)
Get psi_det_beta_unique on the qp_run scheduler
Needs:
psi_det_beta_unique
- zmq_get_psi_det_size:
File :
determinants/zmq.irp.f_template_379integer function zmq_get_psi_det_size(zmq_to_qp_run_socket, worker_id)
Get psi_det_size from the qp_run scheduler
Needs:
mpi_master
psi_det_size
zmq_state
- zmq_get_psi_notouch:
File :
determinants/zmq.irp.finteger function zmq_get_psi_notouch(zmq_to_qp_run_socket, worker_id)
Get the wave function from the qp_run scheduler
Needs:
n_intn_states
psi_coefpsi_det
psi_det_size
- zmq_put_n_det:
File :
determinants/zmq.irp.f_template_379integer function zmq_put_N_det(zmq_to_qp_run_socket,worker_id)
Put N_det on the qp_run scheduler
Needs:
n_det
zmq_state
- zmq_put_n_det_alpha_unique:
File :
determinants/zmq.irp.f_template_379integer function zmq_put_N_det_alpha_unique(zmq_to_qp_run_socket,worker_id)
Put N_det_alpha_unique on the qp_run scheduler
Needs:
psi_det_alpha_unique
zmq_state
- zmq_put_n_det_beta_unique:
File :
determinants/zmq.irp.f_template_379integer function zmq_put_N_det_beta_unique(zmq_to_qp_run_socket,worker_id)
Put N_det_beta_unique on the qp_run scheduler
Needs:
psi_det_beta_unique
zmq_state
- zmq_put_n_states:
File :
determinants/zmq.irp.f_template_379integer function zmq_put_N_states(zmq_to_qp_run_socket,worker_id)
Put N_states on the qp_run scheduler
Needs:
n_states
zmq_state
- zmq_put_psi:
File :
determinants/zmq.irp.finteger function zmq_put_psi(zmq_to_qp_run_socket,worker_id)
Put the wave function on the qp_run scheduler
- zmq_put_psi_bilinear:
File :
determinants/zmq.irp.finteger function zmq_put_psi_bilinear(zmq_to_qp_run_socket,worker_id)
Put the wave function on the qp_run scheduler
- zmq_put_psi_bilinear_matrix_columns:
File :
determinants/zmq.irp.f_template_500integer*8 function zmq_put_psi_bilinear_matrix_columns(zmq_to_qp_run_socket,worker_id)
Put psi_bilinear_matrix_columns on the qp_run scheduler
Needs:
psi_bilinear_matrix_values
- zmq_put_psi_bilinear_matrix_order:
File :
determinants/zmq.irp.f_template_500integer*8 function zmq_put_psi_bilinear_matrix_order(zmq_to_qp_run_socket,worker_id)
Put psi_bilinear_matrix_order on the qp_run scheduler
Needs:
psi_bilinear_matrix_values
- zmq_put_psi_bilinear_matrix_rows:
File :
determinants/zmq.irp.f_template_500integer*8 function zmq_put_psi_bilinear_matrix_rows(zmq_to_qp_run_socket,worker_id)
Put psi_bilinear_matrix_rows on the qp_run scheduler
Needs:
psi_bilinear_matrix_values
- zmq_put_psi_bilinear_matrix_values:
File :
determinants/zmq.irp.f_template_564integer*8 function zmq_put_psi_bilinear_matrix_values(zmq_to_qp_run_socket,worker_id)
Put psi_bilinear_matrix_values on the qp_run scheduler
Needs:
psi_bilinear_matrix_values
- zmq_put_psi_coef:
File :
determinants/zmq.irp.f_template_564integer*8 function zmq_put_psi_coef(zmq_to_qp_run_socket,worker_id)
Put psi_coef on the qp_run scheduler
Needs:
psi_coef
- zmq_put_psi_det:
File :
determinants/zmq.irp.f_template_440integer*8 function zmq_put_psi_det(zmq_to_qp_run_socket,worker_id)
Put psi_det on the qp_run scheduler
Needs:
psi_det
- zmq_put_psi_det_alpha_unique:
File :
determinants/zmq.irp.f_template_440integer*8 function zmq_put_psi_det_alpha_unique(zmq_to_qp_run_socket,worker_id)
Put psi_det_alpha_unique on the qp_run scheduler
Needs:
psi_det_alpha_unique
- zmq_put_psi_det_beta_unique:
File :
determinants/zmq.irp.f_template_440integer*8 function zmq_put_psi_det_beta_unique(zmq_to_qp_run_socket,worker_id)
Put psi_det_beta_unique on the qp_run scheduler
Needs:
psi_det_beta_unique
- zmq_put_psi_det_size:
File :
determinants/zmq.irp.f_template_379integer function zmq_put_psi_det_size(zmq_to_qp_run_socket,worker_id)
Put psi_det_size on the qp_run scheduler
Needs:
psi_det_size
zmq_state