bitmask module
The central part of this module is the bitmasks_module.f90 file. It contains
the constants that will be used to define on which kind of integer the bitmasks
will be defined.
In the program, to represent a determinant as a pair of bitstrings, the determinant should be defined as
use bitmasks
integer(bit_kind) :: determinant(N_int,2)
bitmasks_routines.irp.f contains helper routines to manipulate bitmask, like
transforming a bit string to a list of integers for example.
bit_kind_shift, bit_kind_size and bit_kind are supposed to be consistent:
2**bit_kind_shift = bit_kind_size
bit_kind = bit_kind_size / 8
For an example of how to use the bitmaks, see the file example.irp.f.
EZFIO parameters
- n_act_orb
Number of active MOs
- do_ormas
if
truerestrict selection based on ORMAS rulesDefault: false
- ormas_n_space
Number of active spaces
Default: 1
- ormas_mstart
starting orb for each ORMAS space
- ormas_min_e
min number of electrons in each ORMAS space
- ormas_max_e
max number of electrons in each ORMAS space
Providers
- act_bitmask
File :
bitmask/core_inact_act_virt.irp.finteger(bit_kind), allocatable :: act_bitmask (N_int,2)
Bitmask identifying the active MOs
Needs:
list_act
n_act_orb
n_int
Needed by:
closed_shell_ref_bitmaskn_det_generatorspsi_cas
psi_det_generatorsreunion_of_act_virt_bitmaskreunion_of_bitmask
reunion_of_core_inact_act_bitmaskreunion_of_inact_act_bitmask
- closed_shell_ref_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: closed_shell_ref_bitmask (N_int,2)
Needs:
act_bitmask
n_int
ref_bitmask
- core_bitmask
File :
bitmask/core_inact_act_virt.irp.finteger(bit_kind), allocatable :: core_bitmask (N_int,2)
Bitmask identifying the core MOs
Needs:
list_core
n_core_orb
n_int
Needed by:
inact_virt_bitmask
reunion_of_core_inact_bitmask
- core_inact_act_bitmask_4
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: core_inact_act_bitmask_4 (N_int,4)
Needs:
n_int
reunion_of_core_inact_act_bitmask
- core_inact_virt_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: inact_virt_bitmask (N_int,2) integer(bit_kind), allocatable :: core_inact_virt_bitmask (N_int,2)
Reunion of the inactive and virtual bitmasks
Needs:
core_bitmaskinact_bitmask
n_int
virt_bitmask
- del_bitmask
File :
bitmask/core_inact_act_virt.irp.finteger(bit_kind), allocatable :: del_bitmask (N_int,2)
Bitmask identifying the deleted MOs
Needs:
list_del
n_del_orb
n_int
- dim_list_act_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: dim_list_act_orb
dimensions for the allocation of list_act. it is at least 1
Needs:
n_act_orb
Needed by:
list_act
- dim_list_core_inact_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: dim_list_core_inact_orb
dimensions for the allocation of list_core. it is at least 1
Needs:
n_core_inact_orb
Needed by:
list_core_inact
- dim_list_core_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: dim_list_core_orb
dimensions for the allocation of list_core. it is at least 1
Needs:
n_core_orb
Needed by:
list_core
- dim_list_del_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: dim_list_del_orb
dimensions for the allocation of list_del. it is at least 1
Needs:
n_del_orb
Needed by:
list_del
- dim_list_inact_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: dim_list_inact_orb
dimensions for the allocation of list_inact. it is at least 1
Needs:
n_inact_orb
Needed by:
list_inact
- dim_list_virt_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: dim_list_virt_orb
dimensions for the allocation of list_virt. it is at least 1
Needs:
n_virt_orb
Needed by:
list_virt
- full_ijkl_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: full_ijkl_bitmask (N_int)
Bitmask to include all possible MOs
Needs:
mo_num
n_int
Needed by:
fock_operator_closed_shell_ref_bitmaskfock_wee_closed_shell
full_ijkl_bitmask_4
generators_bitmask
- full_ijkl_bitmask_4
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: full_ijkl_bitmask_4 (N_int,4)
Needs:
full_ijkl_bitmask
n_int
Needed by:
mo_two_e_integrals_erf_in_map
mo_two_e_integrals_in_map
- generators_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: generators_bitmask (N_int,2,6)
Bitmasks for generator determinants. (N_int, alpha/beta, hole/particle, generator).
3rd index is :
1 : hole for single exc
2 : particle for single exc
3 : hole for 1st exc of double
4 : particle for 1st exc of double
5 : hole for 2nd exc of double
6 : particle for 2nd exc of double
Needs:
ezfio_filenamefull_ijkl_bitmask
n_intreunion_of_act_virt_bitmask
reunion_of_inact_act_bitmask
- hf_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: hf_bitmask (N_int,2)
Hartree Fock bit mask
Needs:
elec_alpha_num
elec_beta_num
n_int
Needed by:
double_exc_bitmaskmax_degree_excpsi_cas
psi_detref_bitmask
single_exc_bitmaskunpaired_alpha_electrons
- inact_bitmask
File :
bitmask/core_inact_act_virt.irp.finteger(bit_kind), allocatable :: inact_bitmask (N_int,2)
Bitmask identifying the inactive MOs
Needs:
list_inact
n_inact_orb
n_int
Needed by:
inact_virt_bitmaskreunion_of_bitmask
reunion_of_core_inact_bitmask
reunion_of_inact_act_bitmask
- inact_virt_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: inact_virt_bitmask (N_int,2) integer(bit_kind), allocatable :: core_inact_virt_bitmask (N_int,2)
Reunion of the inactive and virtual bitmasks
Needs:
core_bitmaskinact_bitmask
n_int
virt_bitmask
- index_holes_bitmask
File :
bitmask/modify_bitmasks.irp.finteger, allocatable :: index_holes_bitmask (3)
Index of the holes in the generators_bitmasks
- index_particl_bitmask
File :
bitmask/modify_bitmasks.irp.finteger, allocatable :: index_particl_bitmask (3)
Index of the holes in the generators_bitmasks
- list_act
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_act (dim_list_act_orb) integer, allocatable :: list_act_reverse (mo_num)
List of MO indices which are in the active.
Needs:
dim_list_act_orbmo_class
mo_num
n_act_orb
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_moact_bitmaskbielec_pqxx_arraybielec_pqxx_no_arraybielec_pxxq_arraybielec_pxxq_no_arraybieleccibielecci_nocholesky_no_1_idx_transpcholesky_no_2_idx_transpcholesky_no_total_transpcore_fock_operator
core_fock_operator_erfd0tud0tu_alpha_aoeigenvectors_fock_matrix_moetwoexcitfapqfock_matrix_mofull_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mofull_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_mogradvec2hessdiaghessmathessmat_peter
lowest_super_ci_coef_momat_tmp_dm_super_cinatorbsci_mosoccnumone_ints_nop0tuvx_peterstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_mostate_av_full_occ_2_rdm_aa_mostate_av_full_occ_2_rdm_ab_mostate_av_full_occ_2_rdm_bb_mostate_av_full_occ_2_rdm_spin_trace_mosuper_ci_dmumat
- list_act_reverse
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_act (dim_list_act_orb) integer, allocatable :: list_act_reverse (mo_num)
List of MO indices which are in the active.
Needs:
dim_list_act_orbmo_class
mo_num
n_act_orb
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_moact_bitmaskbielec_pqxx_arraybielec_pqxx_no_arraybielec_pxxq_arraybielec_pxxq_no_arraybieleccibielecci_nocholesky_no_1_idx_transpcholesky_no_2_idx_transpcholesky_no_total_transpcore_fock_operator
core_fock_operator_erfd0tud0tu_alpha_aoeigenvectors_fock_matrix_moetwoexcitfapqfock_matrix_mofull_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mofull_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_mogradvec2hessdiaghessmathessmat_peter
lowest_super_ci_coef_momat_tmp_dm_super_cinatorbsci_mosoccnumone_ints_nop0tuvx_peterstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_mostate_av_full_occ_2_rdm_aa_mostate_av_full_occ_2_rdm_ab_mostate_av_full_occ_2_rdm_bb_mostate_av_full_occ_2_rdm_spin_trace_mosuper_ci_dmumat
- list_all_but_del_orb
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_all_but_del_orb (n_all_but_del_orb)
Needs:
mo_class
mo_num
n_all_but_del_orb
- list_core
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_core (dim_list_core_orb) integer, allocatable :: list_core_reverse (mo_num)
List of MO indices which are in the core.
Needs:
dim_list_core_orbmo_class
mo_num
n_core_orb
Needed by:
core_bitmaskcore_energycore_energy_erfcore_fock_operatorcore_fock_operator_erfeigenvectors_fock_matrix_mofock_matrix_mo
full_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mofull_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_moone_e_dm_mo_alpha_for_dftone_e_dm_mo_alpha_for_dft_no_core
one_e_dm_mo_beta_for_dftone_e_dm_mo_beta_for_dft_no_corestate_av_full_occ_2_rdm_aa_mostate_av_full_occ_2_rdm_ab_mostate_av_full_occ_2_rdm_bb_mostate_av_full_occ_2_rdm_spin_trace_mo
- list_core_inact
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_core_inact (dim_list_core_inact_orb) integer, allocatable :: list_core_inact_reverse (mo_num)
List of indices of the core and inactive MOs
Needs:
dim_list_core_inact_orbmo_num
n_core_inact_orbn_int
reunion_of_core_inact_bitmask
Needed by:
bielec_pqxx_arraybielec_pxxq_arraycholesky_no_total_transpd0tu_alpha_aoetwoexcit
fipqgradvec2hessdiaghessmathessmat_peter
lowest_super_ci_coef_momat_tmp_dm_super_cioccnumsuper_ci_dmumat
- list_core_inact_act
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_core_inact_act (n_core_inact_act_orb) integer, allocatable :: list_core_inact_act_reverse (mo_num)
List of indices of the core inactive and active MOs
Needs:
mo_numn_core_inact_act_orb
n_int
reunion_of_core_inact_act_bitmask
Needed by:
etwofapq
fipq
two_e_dm_mo
- list_core_inact_act_reverse
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_core_inact_act (n_core_inact_act_orb) integer, allocatable :: list_core_inact_act_reverse (mo_num)
List of indices of the core inactive and active MOs
Needs:
mo_numn_core_inact_act_orb
n_int
reunion_of_core_inact_act_bitmask
Needed by:
etwofapq
fipq
two_e_dm_mo
- list_core_inact_reverse
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_core_inact (dim_list_core_inact_orb) integer, allocatable :: list_core_inact_reverse (mo_num)
List of indices of the core and inactive MOs
Needs:
dim_list_core_inact_orbmo_num
n_core_inact_orbn_int
reunion_of_core_inact_bitmask
Needed by:
bielec_pqxx_arraybielec_pxxq_arraycholesky_no_total_transpd0tu_alpha_aoetwoexcit
fipqgradvec2hessdiaghessmathessmat_peter
lowest_super_ci_coef_momat_tmp_dm_super_cioccnumsuper_ci_dmumat
- list_core_reverse
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_core (dim_list_core_orb) integer, allocatable :: list_core_reverse (mo_num)
List of MO indices which are in the core.
Needs:
dim_list_core_orbmo_class
mo_num
n_core_orb
Needed by:
core_bitmaskcore_energycore_energy_erfcore_fock_operatorcore_fock_operator_erfeigenvectors_fock_matrix_mofock_matrix_mo
full_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mofull_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_moone_e_dm_mo_alpha_for_dftone_e_dm_mo_alpha_for_dft_no_core
one_e_dm_mo_beta_for_dftone_e_dm_mo_beta_for_dft_no_corestate_av_full_occ_2_rdm_aa_mostate_av_full_occ_2_rdm_ab_mostate_av_full_occ_2_rdm_bb_mostate_av_full_occ_2_rdm_spin_trace_mo
- list_del
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_del (dim_list_del_orb) integer, allocatable :: list_del_reverse (mo_num)
List of MO indices which are deleted.
Needs:
dim_list_del_orbmo_class
mo_num
n_del_orb
Needed by:
del_bitmask
- list_del_reverse
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_del (dim_list_del_orb) integer, allocatable :: list_del_reverse (mo_num)
List of MO indices which are deleted.
Needs:
dim_list_del_orbmo_class
mo_num
n_del_orb
Needed by:
del_bitmask
- list_inact
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_inact (dim_list_inact_orb) integer, allocatable :: list_inact_reverse (mo_num)
List of MO indices which are inactive.
Needs:
dim_list_inact_orbmo_class
mo_num
n_inact_orb
Needed by:
eigenvectors_fock_matrix_mofock_matrix_mofull_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mo
full_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_moinact_bitmaskstate_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
- list_inact_act
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_inact_act (n_inact_act_orb) integer, allocatable :: list_inact_act_reverse (mo_num)
List of indices of the inactive and active MOs
Needs:
mo_numn_inact_act_orb
n_int
reunion_of_inact_act_bitmask
- list_inact_act_reverse
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_inact_act (n_inact_act_orb) integer, allocatable :: list_inact_act_reverse (mo_num)
List of indices of the inactive and active MOs
Needs:
mo_numn_inact_act_orb
n_int
reunion_of_inact_act_bitmask
- list_inact_reverse
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_inact (dim_list_inact_orb) integer, allocatable :: list_inact_reverse (mo_num)
List of MO indices which are inactive.
Needs:
dim_list_inact_orbmo_class
mo_num
n_inact_orb
Needed by:
eigenvectors_fock_matrix_mofock_matrix_mofull_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mo
full_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_moinact_bitmaskstate_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
- list_virt
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_virt (dim_list_virt_orb) integer, allocatable :: list_virt_reverse (mo_num)
List of MO indices which are virtual
Needs:
dim_list_virt_orbmo_class
mo_num
n_virt_orb
Needed by:
cholesky_no_total_transpeigenvectors_fock_matrix_moexcitfock_matrix_mogradvec2
hessdiaghessmathessmat_peterlowest_super_ci_coef_mo
mat_tmp_dm_super_cisuper_ci_dmumatvirt_bitmask
- list_virt_reverse
File :
bitmask/core_inact_act_virt.irp.finteger, allocatable :: list_virt (dim_list_virt_orb) integer, allocatable :: list_virt_reverse (mo_num)
List of MO indices which are virtual
Needs:
dim_list_virt_orbmo_class
mo_num
n_virt_orb
Needed by:
cholesky_no_total_transpeigenvectors_fock_matrix_moexcitfock_matrix_mogradvec2
hessdiaghessmathessmat_peterlowest_super_ci_coef_mo
mat_tmp_dm_super_cisuper_ci_dmumatvirt_bitmask
- mo_coef_begin_iteration
File :
bitmask/track_orb.irp.fdouble precision, allocatable :: mo_coef_begin_iteration (ao_num,mo_num)
Void provider to store the coefficients of the MO basis at the beginning of the SCF iteration
Useful to track some orbitals
Needs:
ao_num
mo_num
- mpi_bit_kind
File :
bitmask/mpi.irp.finteger :: mpi_bit_kind
MPI bit kind type
- n_act_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: n_act_orb
Number of active MOs
Needs:
mo_class
mo_num
mpi_master
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_moact_bitmaskbielec_pqxx_arraybielec_pqxx_no_arraybielec_pxxq_arraybielec_pxxq_no_arraybieleccibielecci_nocholesky_no_1_idx_transpcholesky_no_2_idx_transpcholesky_no_total_transpcore_fock_operatorcore_fock_operator_erfd0tud0tu_alpha_aodim_list_act_orb
eigenvectors_fock_matrix_moetwoexcitfapqfock_matrix_mofull_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mofull_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_mogradvec2hessdiaghessmathessmat_peterlist_actlowest_super_ci_coef_momat_tmp_dm_super_cin_c_a_provn_core_inact_act_orbn_inact_act_orb
natorbscinatorbsci_mosnmonoexnsomomaxoccnumone_ints_nop0tuvxp0tuvx_nop0tuvx_peterstate_av_act_2_rdm_aa_mostate_av_act_2_rdm_ab_mostate_av_act_2_rdm_bb_mostate_av_act_2_rdm_spin_trace_mostate_av_full_occ_2_rdm_aa_mostate_av_full_occ_2_rdm_ab_mostate_av_full_occ_2_rdm_bb_mostate_av_full_occ_2_rdm_spin_trace_mosuper_ci_dmumat
- n_all_but_del_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: n_all_but_del_orb
Needs:
mo_class
mo_num
Needed by:
list_all_but_del_orb
- n_core_inact_act_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: n_core_inact_act_orb
Number of core inactive and active MOs
Needs:
n_act_orb
n_core_orb
n_inact_orb
Needed by:
bielec_pqxx_arraybielec_pqxx_no_arraybielec_pxxq_arraybielec_pxxq_no_arrayfull_occ_2_rdm_aa_mo
full_occ_2_rdm_ab_mofull_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_molist_core_inact_actstate_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_motwo_e_dm_mo
- n_core_inact_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: n_core_inact_orb
n_core + n_inact
Needs:
n_int
reunion_of_core_inact_bitmask
Needed by:
bielec_pqxx_arraybielec_pqxx_no_arraybielec_pxxq_arraybielec_pxxq_no_arraycholesky_no_total_transpd0tu_alpha_aodim_list_core_inact_orbetwo
excitfipqgradvec2hessdiaghessmathessmat_peterlist_core_inact
lowest_super_ci_coef_momat_tmp_dm_super_cin_c_a_provnmonoexoccnumsuper_ci_dmumat
- n_core_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: n_core_orb
Number of core MOs
Needs:
mo_class
mo_num
mpi_master
Needed by:
core_bitmaskcore_energycore_energy_erfcore_fock_operatorcore_fock_operator_erfdim_list_core_orbeigenvectors_fock_matrix_mofock_matrix_mo
full_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mofull_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_molist_coren_core_inact_act_orbone_e_dm_mo_alpha_for_dftone_e_dm_mo_alpha_for_dft_no_core
one_e_dm_mo_beta_for_dftone_e_dm_mo_beta_for_dft_no_corept2_fstate_av_full_occ_2_rdm_aa_mostate_av_full_occ_2_rdm_ab_mostate_av_full_occ_2_rdm_bb_mostate_av_full_occ_2_rdm_spin_trace_mo
- n_del_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: n_del_orb
Number of deleted MOs
Needs:
mo_class
mo_num
mpi_master
Needed by:
del_bitmask
dim_list_del_orb
list_del
- n_inact_act_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: n_inact_act_orb
n_inact + n_act
Needs:
n_act_orb
n_inact_orb
Needed by:
list_inact_act
- n_inact_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: n_inact_orb
Number of inactive MOs
Needs:
mo_class
mo_num
mpi_master
Needed by:
dim_list_inact_orbeigenvectors_fock_matrix_mofock_matrix_mofull_occ_2_rdm_aa_mofull_occ_2_rdm_ab_mo
full_occ_2_rdm_bb_mofull_occ_2_rdm_spin_trace_moinact_bitmasklist_inactn_core_inact_act_orb
n_inact_act_orbstate_av_full_occ_2_rdm_aa_mostate_av_full_occ_2_rdm_ab_mostate_av_full_occ_2_rdm_bb_mostate_av_full_occ_2_rdm_spin_trace_mo
- n_int
File :
bitmask/bitmasks.irp.finteger :: n_int
Number of 64-bit integers needed to represent determinants as binary strings
Needs:
mo_num
mpi_master
Needed by:
act_bitmaskcfg_seniority_indexci_electronic_energyclosed_shell_ref_bitmaskcoef_hf_selectorcore_bitmaskcore_inact_act_bitmask_4del_bitmaskdet_to_configurationdettocsftransformationmatrixdiagonal_h_matrix_on_psi_detdominant_dets_of_cfgsdouble_exc_bitmaskexc_degree_per_selectorsfock_operator_closed_shell_ref_bitmaskfock_wee_closed_shellfull_ijkl_bitmaskfull_ijkl_bitmask_4generators_bitmaskglobal_selection_buffergradvec_oldh_apply_buffer_allocatedh_matrix_all_detsh_matrix_cash_matrix_diag_all_detshessmat_oldhf_bitmaskinact_bitmaskinact_virt_bitmasklist_core_inact
list_core_inact_actlist_inact_actmax_degree_excmo_two_e_integrals_erf_in_mapmo_two_e_integrals_in_mapmulti_s_dipole_momentn_core_inact_orbn_det_generatorsn_dominant_dets_of_cfgsn_elec_alpha_for_psi_configurationone_e_dm_mo_alphaone_e_tr_dm_moone_e_tr_dm_mo_alphaorb_swapormas_bitmaskp0tuvxp0tuvx_peterpsi_bilinear_matrix_valuespsi_caspsi_cas_sorted_bitpsi_configurationpsi_configuration_sortedpsi_configuration_to_psi_detpsi_csf_coefpsi_detpsi_det_alphapsi_det_alpha_uniquepsi_det_betapsi_det_beta_uniquepsi_det_generators
psi_det_hiipsi_det_sortedpsi_det_sorted_bitpsi_energypsi_energy_two_epsi_energy_two_e_transpsi_non_caspsi_non_cas_sorted_bitpsi_selectorspsi_selectors_diag_h_matref_bitmaskref_bitmask_energyref_closed_shell_bitmaskreunion_of_act_virt_bitmaskreunion_of_bitmaskreunion_of_core_inact_act_bitmaskreunion_of_core_inact_bitmaskreunion_of_inact_act_bitmasks2_matrix_all_detss2_valuessingle_exc_bitmasksingles_alpha_cscsingles_alpha_csc_idxsingles_alpha_csc_mapsingles_beta_cscsingles_beta_csc_idxsingles_beta_csc_mapunpaired_alpha_electronsvirt_bitmaskvirt_bitmask_4
- n_virt_orb
File :
bitmask/core_inact_act_virt.irp.finteger :: n_virt_orb
Number of virtual MOs
Needs:
mo_class
mo_num
mpi_master
Needed by:
cholesky_no_total_transpdim_list_virt_orbeigenvectors_fock_matrix_moexcitfock_matrix_mogradvec2
hessdiaghessmathessmat_peterlist_virtlowest_super_ci_coef_momat_tmp_dm_super_ci
n_c_a_provnmonoexsuper_ci_dmumatvirt_bitmask
- ormas_bitmask
File :
bitmask/bitmasks_ormas.irp.finteger(bit_kind), allocatable :: ormas_bitmask (N_int,ormas_n_space)
bitmask for each ormas space
Needs:
n_intormas_list_orb
ormas_n_orb
ormas_n_space
- ormas_list_orb
File :
bitmask/bitmasks_ormas.irp.finteger, allocatable :: ormas_list_orb (ormas_max_n_orb,ormas_n_space)
list of orbitals in each ormas space
Needs:
ormas_n_orb
ormas_n_space
Needed by:
ormas_bitmask
- ormas_max_e
File :
bitmask/bitmasks_ormas.irp.finteger, allocatable :: ormas_max_e (ormas_n_space)
max nelec in each active space
Needs:
elec_numezfio_filename
mpi_master
ormas_n_space
- ormas_max_n_orb
File :
bitmask/bitmasks_ormas.irp.finteger, allocatable :: ormas_n_orb (ormas_n_space) integer :: ormas_max_n_orb
number of orbitals in each ormas space
Needs:
mo_num
ormas_mstart
ormas_n_space
Needed by:
ormas_bitmask
ormas_list_orb
- ormas_min_e
File :
bitmask/bitmasks_ormas.irp.finteger, allocatable :: ormas_min_e (ormas_n_space)
min nelec in each active space
Needs:
ezfio_filename
mpi_master
ormas_n_space
- ormas_mstart
File :
bitmask/bitmasks_ormas.irp.finteger, allocatable :: ormas_mstart (ormas_n_space)
first orbital idx in each active space
Needs:
ezfio_filename
mpi_master
ormas_n_space
Needed by:
ormas_n_orb
- ormas_n_orb
File :
bitmask/bitmasks_ormas.irp.finteger, allocatable :: ormas_n_orb (ormas_n_space) integer :: ormas_max_n_orb
number of orbitals in each ormas space
Needs:
mo_num
ormas_mstart
ormas_n_space
Needed by:
ormas_bitmask
ormas_list_orb
- ref_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: ref_bitmask (N_int,2)
Reference bit mask, used in Slater rules, chosen as Hartree-Fock bitmask
Needs:
hf_bitmask
n_int
Needed by:
closed_shell_ref_bitmaskcoef_hf_selectordiagonal_h_matrix_on_psi_det
exc_degree_per_selectorspsi_det_hiipsi_selectors_diag_h_mat
ref_bitmask_energyref_closed_shell_bitmask
- reunion_of_act_virt_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: reunion_of_act_virt_bitmask (N_int,2)
Reunion of the inactive and active bitmasks
Needs:
act_bitmask
n_int
virt_bitmask
Needed by:
generators_bitmask
- reunion_of_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: reunion_of_bitmask (N_int,2)
Reunion of the inactive, active and virtual bitmasks
Needs:
act_bitmaskinact_bitmask
n_int
virt_bitmask
- reunion_of_core_inact_act_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: reunion_of_core_inact_act_bitmask (N_int,2)
Reunion of the core, inactive and active bitmasks
Needs:
act_bitmask
n_int
reunion_of_core_inact_bitmask
Needed by:
core_inact_act_bitmask_4
list_core_inact_act
- reunion_of_core_inact_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: reunion_of_core_inact_bitmask (N_int,2)
Reunion of the core and inactive and virtual bitmasks
Needs:
core_bitmask
inact_bitmask
n_int
Needed by:
list_core_inactn_core_inact_orb
n_det_generatorspsi_det_generators
reunion_of_core_inact_act_bitmask
- reunion_of_inact_act_bitmask
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: reunion_of_inact_act_bitmask (N_int,2)
Reunion of the inactive and active bitmasks
Needs:
act_bitmask
inact_bitmask
n_int
Needed by:
generators_bitmask
list_inact_act
- unpaired_alpha_electrons
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: unpaired_alpha_electrons (N_int)
Bitmask reprenting the unpaired alpha electrons in the HF_bitmask
Needs:
hf_bitmask
n_int
- virt_bitmask
File :
bitmask/core_inact_act_virt.irp.finteger(bit_kind), allocatable :: virt_bitmask (N_int,2)
Bitmask identifying the virtual MOs
Needs:
list_virt
n_int
n_virt_orb
Needed by:
inact_virt_bitmaskn_det_generators
psi_det_generatorsreunion_of_act_virt_bitmask
reunion_of_bitmaskvirt_bitmask_4
- virt_bitmask_4
File :
bitmask/bitmasks.irp.finteger(bit_kind), allocatable :: virt_bitmask_4 (N_int,4)
Needs:
n_int
virt_bitmask
Subroutines / functions
- bitstring_to_hexa:
File :
bitmask/bitmasks_routines.irp.fsubroutine bitstring_to_hexa( output, string, Nint )
Transform a bit string to a string in hexadecimal format for printing
Called by:
debug_cfg()
debug_det()
debug_spindet()
- bitstring_to_list:
File :
bitmask/bitmasks_routines.irp.fsubroutine bitstring_to_list( string, list, n_elements, Nint)
Gives the indices(+1) of the bits set to 1 in the bit string
Called by:
add_integrals_to_map()add_integrals_to_map_erf()create_microlist()example_bitmask()
generate_cas_space()getmobiles()list_core_inactlist_core_inact_act
list_inact_actref_bitmask_energysplash_p()spot_hasbeen()
- bitstring_to_str:
File :
bitmask/bitmasks_routines.irp.fsubroutine bitstring_to_str( output, string, Nint )
Transform a bit string to a string for printing
Called by:
add_integrals_to_map_erf()example_bitmask()
print_det()print_det_one_dimension()
print_spindet()
- broadcast_chunks_bit_kind:
File :
bitmask/mpi.irp.fsubroutine broadcast_chunks_bit_kind(A, LDA)
Broadcast with chunks of ~2GB
- clear_bit_to_integer:
File :
bitmask/bitmasks_routines.irp.fsubroutine clear_bit_to_integer(i_physical,key,Nint)
set to 0 the bit number i_physical in the bitstring key
Called by:
example_bitmask()
ref_closed_shell_bitmask
- configuration_to_str:
File :
bitmask/bitmasks_routines.irp.fsubroutine configuration_to_str( output, string, Nint )
Transform the bit string of a configuration to a string for printing
Called by:
debug_cfg()
- debug_cfg:
File :
bitmask/bitmasks_routines.irp.fsubroutine debug_cfg(string,Nint)
Subroutine to print the content of a determinant in ‘+-’ notation and hexadecimal representation.
Calls:
bitstring_to_hexa()
configuration_to_str()
- debug_det:
File :
bitmask/bitmasks_routines.irp.fsubroutine debug_det(string,Nint)
Subroutine to print the content of a determinant in ‘+-’ notation and hexadecimal representation.
Called by:
build_fock_tmp()example_determinants()get_excitation_degree_vector_single_or_exchange_verbose()
get_particles_general()number_of_holes_verbose()
number_of_particles_verbose()routine_example_psi_det()
Calls:
bitstring_to_hexa()
print_det()
- debug_spindet:
File :
bitmask/bitmasks_routines.irp.fsubroutine debug_spindet(string,Nint)
Subroutine to print the content of a determinant in ‘+-’ notation and hexadecimal representation.
Calls:
bitstring_to_hexa()
print_spindet()
- det_allowed_ormas:
File :
bitmask/bitmasks_ormas.irp.flogical function det_allowed_ormas(key_in)
return true if det has allowable ormas occupations
Needs:
n_intormas_bitmask
ormas_max_eormas_min_e
ormas_n_space
- example_bitmask:
File :
bitmask/example.irp.fsubroutine example_bitmask
subroutine that illustrates the main features available in bitmask
Needs:
list_actlist_corelist_inactlist_virt
mo_numn_act_orbn_core_orb
n_inact_orbn_intn_virt_orb
Calls:
bitstring_to_list()bitstring_to_str()
clear_bit_to_integer()
set_bit_to_integer()
- initialize_mo_coef_begin_iteration:
File :
bitmask/track_orb.irp.fsubroutine initialize_mo_coef_begin_iteration
Initialize
mo_coef_begin_iterationto the currentmo_coefNeeds:
mo_coef
mo_coef_begin_iteration
Called by:
damping_scf()
roothaan_hall_scf()
- is_a_1h:
File :
bitmask/bitmask_cas_routines.irp.flogical function is_a_1h(key_in)
Needs:
n_int
- is_a_1h1p:
File :
bitmask/bitmask_cas_routines.irp.flogical function is_a_1h1p(key_in)
Needs:
n_int
- is_a_1h2p:
File :
bitmask/bitmask_cas_routines.irp.flogical function is_a_1h2p(key_in)
Needs:
n_int
- is_a_1p:
File :
bitmask/bitmask_cas_routines.irp.flogical function is_a_1p(key_in)
Needs:
n_int
- is_a_2h:
File :
bitmask/bitmask_cas_routines.irp.flogical function is_a_2h(key_in)
Needs:
n_int
- is_a_2h1p:
File :
bitmask/bitmask_cas_routines.irp.flogical function is_a_2h1p(key_in)
Needs:
n_int
- is_a_2p:
File :
bitmask/bitmask_cas_routines.irp.flogical function is_a_2p(key_in)
Needs:
n_int
- is_a_two_holes_two_particles:
File :
bitmask/bitmask_cas_routines.irp.flogical function is_a_two_holes_two_particles(key_in)
logical function that returns True if the determinant ‘key_in’ belongs to the 2h-2p excitation class of the DDCI space this is calculated using the act_bitmask that defines the active orbital space, the inact_bitmasl that defines the inactive oribital space and the virt_bitmask that defines the virtual orbital space
Needs:
act_bitmaskn_int
reunion_of_core_inact_bitmask
virt_bitmask
- is_i_in_virtual:
File :
bitmask/bitmask_cas_routines.irp.flogical function is_i_in_virtual(i)
Needs:
n_int
virt_bitmask
- is_integer_in_string:
File :
bitmask/bitmasks_routines.irp.flogical function is_integer_in_string(bite,string,Nint)
Calls:
set_bit_to_integer()
- is_the_hole_in_det:
File :
bitmask/find_hole.irp.flogical function is_the_hole_in_det(key_in,ispin,i_hole)
Needs:
n_int
- is_the_particl_in_det:
File :
bitmask/find_hole.irp.flogical function is_the_particl_in_det(key_in,ispin,i_particl)
Needs:
n_int
- list_to_bitstring:
File :
bitmask/bitmasks_routines.irp.fsubroutine list_to_bitstring( string, list, n_elements, Nint)
Returns the physical string “string(N_int,2)” from the array of occupations “list(N_int*bit_kind_size,2)
Called by:
act_bitmaskcore_bitmaskdel_bitmaskgenerate_cas_space()hf_bitmaskinact_bitmaskorb_range_2_rdm_openmp_work_1()orb_range_2_rdm_openmp_work_2()
orb_range_2_rdm_openmp_work_3()orb_range_2_rdm_openmp_work_4()orb_range_2_rdm_openmp_work_n_int()orb_range_2_rdm_state_av_openmp_work_1()orb_range_2_rdm_state_av_openmp_work_2()orb_range_2_rdm_state_av_openmp_work_3()orb_range_2_rdm_state_av_openmp_work_4()orb_range_2_rdm_state_av_openmp_work_n_int()
orb_range_2_trans_rdm_openmp_work_1()orb_range_2_trans_rdm_openmp_work_2()orb_range_2_trans_rdm_openmp_work_3()orb_range_2_trans_rdm_openmp_work_4()orb_range_2_trans_rdm_openmp_work_n_int()ormas_bitmaskvirt_bitmask
- modify_bitmasks_for_hole:
File :
bitmask/modify_bitmasks.irp.fsubroutine modify_bitmasks_for_hole(i_hole)
modify the generators_bitmask in order that one can only excite the electrons occupying i_hole
Needs:
generators_bitmask
index_holes_bitmask
n_int
- modify_bitmasks_for_hole_in_out:
File :
bitmask/modify_bitmasks.irp.fsubroutine modify_bitmasks_for_hole_in_out(i_hole)
modify the generators_bitmask in order that one can only excite the electrons occupying i_hole
Needs:
generators_bitmask
index_holes_bitmask
- modify_bitmasks_for_particl:
File :
bitmask/modify_bitmasks.irp.fsubroutine modify_bitmasks_for_particl(i_part)
modify the generators_bitmask in order that one can only excite the electrons to the orbital i_part
Needs:
generators_bitmask
index_particl_bitmask
n_int
- number_of_holes:
File :
bitmask/bitmask_cas_routines.irp.finteger function number_of_holes(key_in)
Function that returns the number of holes in the inact space
- popcnt(
- xor(
- iand(
reunion_of_core_inact_bitmask(1,1), xor(
key_in(1,1), iand(
key_in(1,1), act_bitmask(1,1))
)
), reunion_of_core_inact_bitmask(1,1)) )
(key_in && act_bitmask) +———————+
electrons in cas xor key_in
electrons outside of cas && reunion_of_core_inact_bitmask
electrons in the core/inact space xor reunion_of_core_inact_bitmask
holes
Needs:
act_bitmask
n_int
reunion_of_core_inact_bitmask
- number_of_holes_verbose:
File :
bitmask/bitmask_cas_routines.irp.finteger function number_of_holes_verbose(key_in)
function that returns the number of holes in the inact space
Needs:
act_bitmask
n_int
reunion_of_core_inact_bitmask
Calls:
debug_det()
- number_of_particles:
File :
bitmask/bitmask_cas_routines.irp.finteger function number_of_particles(key_in)
function that returns the number of particles in the virtual space
Needs:
act_bitmask
n_int
virt_bitmask
- number_of_particles_verbose:
File :
bitmask/bitmask_cas_routines.irp.finteger function number_of_particles_verbose(key_in)
function that returns the number of particles in the inact space
Needs:
act_bitmask
n_int
virt_bitmask
Calls:
debug_det()
- ormas_occ:
File :
bitmask/bitmasks_ormas.irp.fsubroutine ormas_occ(key_in, occupancies)
number of electrons in each ormas space
Needs:
n_int
ormas_bitmask
ormas_n_space
- print_det:
File :
bitmask/bitmasks_routines.irp.fsubroutine print_det(string,Nint)
Subroutine to print the content of a determinant using the ‘+-’ notation
Called by:
debug_det()
example_determinants()
print_generators_bitmasks_particles()
Calls:
bitstring_to_str()
- print_det_one_dimension:
File :
bitmask/bitmasks_routines.irp.fsubroutine print_det_one_dimension(string,Nint)
Subroutine to print the content of a determinant using the ‘+-’ notation
Calls:
bitstring_to_str()
- print_generators_bitmasks_holes:
File :
bitmask/modify_bitmasks.irp.fsubroutine print_generators_bitmasks_holes
Needs:
generators_bitmask
index_holes_bitmask
n_int
- print_generators_bitmasks_particles:
File :
bitmask/modify_bitmasks.irp.fsubroutine print_generators_bitmasks_particles
Needs:
generators_bitmask
index_particl_bitmask
n_int
Calls:
print_det()
- print_spindet:
File :
bitmask/bitmasks_routines.irp.fsubroutine print_spindet(string,Nint)
Subroutine to print the content of a determinant using the ‘+-’ notation
Called by:
debug_spindet()
Calls:
bitstring_to_str()
- reorder_core_orb:
File :
bitmask/track_orb.irp.fsubroutine reorder_core_orb
routines that takes the current
mo_coefand reorder the core orbitals (seelist_coreandn_core_orb) according to the overlap withmo_coef_begin_iterationNeeds:
ao_numao_overlaplist_core
mo_coefmo_coef_begin_iteration
mo_numn_core_orb
Called by:
damping_scf()
roothaan_hall_scf()
Calls:
dsort()
- set_bit_to_integer:
File :
bitmask/bitmasks_routines.irp.fsubroutine set_bit_to_integer(i_physical,key,Nint)
set to 1 the bit number i_physical in the bitstring key
Called by:
example_bitmask()
is_integer_in_string()
orb_swap
- set_bitmask_hole_as_input:
File :
bitmask/modify_bitmasks.irp.fsubroutine set_bitmask_hole_as_input(input_bitmask)
set the generators_bitmask for the holes as the input_bitmask
Needs:
generators_bitmask
index_holes_bitmask
n_int
Touches:
generators_bitmask
- set_bitmask_particl_as_input:
File :
bitmask/modify_bitmasks.irp.fsubroutine set_bitmask_particl_as_input(input_bitmask)
set the generators_bitmask for the particles as the input_bitmask
Needs:
generators_bitmask
index_particl_bitmask
n_int
Touches:
generators_bitmask