2019-03-07 16:29:06 +01:00
.. _module_bitmask:
.. program :: bitmask
.. default-role :: option
==============
bitmask module
==============
The central part of this module is the :file: `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
.. code-block :: fortran
use bitmasks
integer(bit_kind) :: determinant(N_int,2)
:file: `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 :file: `example.irp.f` .
2024-12-04 15:58:59 +01:00
EZFIO parameters
----------------
.. option :: n_act_orb
Number of active |MOs|
.. option :: do_ormas
if |true| restrict selection based on ORMAS rules
Default: false
.. option :: ormas_n_space
Number of active spaces
Default: 1
.. option :: ormas_mstart
starting orb for each ORMAS space
.. option :: ormas_min_e
min number of electrons in each ORMAS space
.. option :: ormas_max_e
max number of electrons in each ORMAS space
2019-03-07 16:29:06 +01:00
Providers
---------
.. c:var :: act_bitmask
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
2024-12-04 15:58:59 +01:00
Bitmask identifying the active MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_act`
* :c:data: `n_act_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `closed_shell_ref_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `n_det_generators`
2019-03-07 16:29:06 +01:00
* :c:data: `psi_cas`
2024-12-04 15:58:59 +01:00
* :c:data: `psi_det_generators`
* :c:data: `reunion_of_act_virt_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `reunion_of_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `reunion_of_core_inact_act_bitmask`
* :c:data: `reunion_of_inact_act_bitmask`
2019-03-07 16:29:06 +01:00
.. c:var :: closed_shell_ref_bitmask
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: closed_shell_ref_bitmask (N_int,2)
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
* :c:data: `ref_bitmask`
.. c:var :: core_bitmask
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
2024-12-04 15:58:59 +01:00
Bitmask identifying the core MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_core`
2019-03-07 16:29:06 +01:00
* :c:data: `n_core_orb`
* :c:data: `n_int`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `inact_virt_bitmask`
* :c:data: `reunion_of_core_inact_bitmask`
.. c:var :: core_inact_act_bitmask_4
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: core_inact_act_bitmask_4 (N_int,4)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
* :c:data: `reunion_of_core_inact_act_bitmask`
.. c:var :: core_inact_virt_bitmask
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(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:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `core_bitmask`
* :c:data: `inact_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
.. c:var :: del_bitmask
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2024-12-04 15:58:59 +01:00
Bitmask identifying the deleted MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_del`
* :c:data: `n_del_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
.. c:var :: dim_list_act_orb
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer :: dim_list_act_orb
dimensions for the allocation of list_act.
it is at least 1
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_act_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_act`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: dim_list_core_inact_orb
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer :: dim_list_core_inact_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
dimensions for the allocation of list_core.
2019-03-07 16:29:06 +01:00
it is at least 1
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `n_core_inact_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_core_inact`
2019-03-07 16:29:06 +01:00
.. c:var :: dim_list_core_orb
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer :: dim_list_core_orb
2024-12-04 15:58:59 +01:00
dimensions for the allocation of list_core.
2019-03-07 16:29:06 +01:00
it is at least 1
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_core_orb`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_core`
2019-03-07 16:29:06 +01:00
.. c:var :: dim_list_del_orb
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer :: dim_list_del_orb
2024-12-04 15:58:59 +01:00
dimensions for the allocation of list_del.
2019-03-07 16:29:06 +01:00
it is at least 1
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `n_del_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_del`
2019-03-07 16:29:06 +01:00
.. c:var :: dim_list_inact_orb
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer :: dim_list_inact_orb
2024-12-04 15:58:59 +01:00
dimensions for the allocation of list_inact.
2019-03-07 16:29:06 +01:00
it is at least 1
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `n_inact_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
* :c:data: `list_inact`
.. c:var :: dim_list_virt_orb
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer :: dim_list_virt_orb
2024-12-04 15:58:59 +01:00
dimensions for the allocation of list_virt.
2019-03-07 16:29:06 +01:00
it is at least 1
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `n_virt_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_virt`
2019-03-07 16:29:06 +01:00
.. c:var :: full_ijkl_bitmask
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: full_ijkl_bitmask (N_int)
Bitmask to include all possible MOs
Needs:
.. hlist ::
:columns: 3
* :c:data: `mo_num`
* :c:data: `n_int`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `fock_operator_closed_shell_ref_bitmask`
* :c:data: `fock_wee_closed_shell`
* :c:data: `full_ijkl_bitmask_4`
* :c:data: `generators_bitmask`
.. c:var :: full_ijkl_bitmask_4
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: full_ijkl_bitmask_4 (N_int,4)
Needs:
.. hlist ::
:columns: 3
* :c:data: `full_ijkl_bitmask`
* :c:data: `n_int`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `mo_two_e_integrals_erf_in_map`
* :c:data: `mo_two_e_integrals_in_map`
.. c:var :: generators_bitmask
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer(bit_kind), allocatable :: generators_bitmask (N_int,2,6)
2019-03-07 16:29:06 +01:00
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:
.. hlist ::
:columns: 3
* :c:data: `ezfio_filename`
* :c:data: `full_ijkl_bitmask`
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `reunion_of_act_virt_bitmask`
* :c:data: `reunion_of_inact_act_bitmask`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: hf_bitmask
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer(bit_kind), allocatable :: hf_bitmask (N_int,2)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Hartree Fock bit mask
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `elec_alpha_num`
* :c:data: `elec_beta_num`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `double_exc_bitmask`
* :c:data: `max_degree_exc`
* :c:data: `psi_cas`
* :c:data: `psi_det`
* :c:data: `ref_bitmask`
* :c:data: `single_exc_bitmask`
* :c:data: `unpaired_alpha_electrons`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: inact_bitmask
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Bitmask identifying the inactive MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_inact`
* :c:data: `n_inact_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `inact_virt_bitmask`
* :c:data: `reunion_of_bitmask`
* :c:data: `reunion_of_core_inact_bitmask`
* :c:data: `reunion_of_inact_act_bitmask`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: inact_virt_bitmask
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(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:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `core_bitmask`
* :c:data: `inact_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
.. c:var :: index_holes_bitmask
File : :file: `bitmask/modify_bitmasks.irp.f`
.. code :: fortran
integer, allocatable :: index_holes_bitmask (3)
Index of the holes in the generators_bitmasks
.. c:var :: index_particl_bitmask
File : :file: `bitmask/modify_bitmasks.irp.f`
.. code :: fortran
integer, allocatable :: index_particl_bitmask (3)
Index of the holes in the generators_bitmasks
.. c:var :: list_act
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
2024-12-04 15:58:59 +01:00
List of MO indices which are in the active.
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `dim_list_act_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_act_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_2_rdm_aa_mo`
* :c:data: `act_2_rdm_ab_mo`
* :c:data: `act_2_rdm_bb_mo`
* :c:data: `act_2_rdm_spin_trace_mo`
* :c:data: `act_2_rdm_trans_spin_trace_mo`
* :c:data: `act_bitmask`
* :c:data: `bielec_pqxx_array`
* :c:data: `bielec_pqxx_no_array`
* :c:data: `bielec_pxxq_array`
* :c:data: `bielec_pxxq_no_array`
* :c:data: `bielecci`
* :c:data: `bielecci_no`
* :c:data: `cholesky_no_1_idx_transp`
* :c:data: `cholesky_no_2_idx_transp`
* :c:data: `cholesky_no_total_transp`
2019-03-07 16:29:06 +01:00
* :c:data: `core_fock_operator`
* :c:data: `core_fock_operator_erf`
2024-12-04 15:58:59 +01:00
* :c:data: `d0tu`
* :c:data: `d0tu_alpha_ao`
2019-03-07 16:29:06 +01:00
* :c:data: `eigenvectors_fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `etwo`
* :c:data: `excit`
* :c:data: `fapq`
2019-03-07 16:29:06 +01:00
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `gradvec2`
* :c:data: `hessdiag`
* :c:data: `hessmat`
* :c:data: `hessmat_peter`
* :c:data: `lowest_super_ci_coef_mo`
* :c:data: `mat_tmp_dm_super_ci`
* :c:data: `natorbsci_mos`
* :c:data: `occnum`
* :c:data: `one_ints_no`
* :c:data: `p0tuvx_peter`
* :c:data: `state_av_act_2_rdm_aa_mo`
* :c:data: `state_av_act_2_rdm_ab_mo`
* :c:data: `state_av_act_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
* :c:data: `super_ci_dm`
* :c:data: `umat`
2019-03-07 16:29:06 +01:00
.. c:var :: list_act_reverse
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
2024-12-04 15:58:59 +01:00
List of MO indices which are in the active.
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `dim_list_act_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_act_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_2_rdm_aa_mo`
* :c:data: `act_2_rdm_ab_mo`
* :c:data: `act_2_rdm_bb_mo`
* :c:data: `act_2_rdm_spin_trace_mo`
* :c:data: `act_2_rdm_trans_spin_trace_mo`
* :c:data: `act_bitmask`
* :c:data: `bielec_pqxx_array`
* :c:data: `bielec_pqxx_no_array`
* :c:data: `bielec_pxxq_array`
* :c:data: `bielec_pxxq_no_array`
* :c:data: `bielecci`
* :c:data: `bielecci_no`
* :c:data: `cholesky_no_1_idx_transp`
* :c:data: `cholesky_no_2_idx_transp`
* :c:data: `cholesky_no_total_transp`
2019-03-07 16:29:06 +01:00
* :c:data: `core_fock_operator`
* :c:data: `core_fock_operator_erf`
2024-12-04 15:58:59 +01:00
* :c:data: `d0tu`
* :c:data: `d0tu_alpha_ao`
2019-03-07 16:29:06 +01:00
* :c:data: `eigenvectors_fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `etwo`
* :c:data: `excit`
* :c:data: `fapq`
2019-03-07 16:29:06 +01:00
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `gradvec2`
* :c:data: `hessdiag`
* :c:data: `hessmat`
* :c:data: `hessmat_peter`
* :c:data: `lowest_super_ci_coef_mo`
* :c:data: `mat_tmp_dm_super_ci`
* :c:data: `natorbsci_mos`
* :c:data: `occnum`
* :c:data: `one_ints_no`
* :c:data: `p0tuvx_peter`
* :c:data: `state_av_act_2_rdm_aa_mo`
* :c:data: `state_av_act_2_rdm_ab_mo`
* :c:data: `state_av_act_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
* :c:data: `super_ci_dm`
* :c:data: `umat`
.. c:var :: list_all_but_del_orb
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_all_but_del_orb (n_all_but_del_orb)
Needs:
.. hlist ::
:columns: 3
* :c:data: `mo_class`
* :c:data: `mo_num`
* :c:data: `n_all_but_del_orb`
2019-03-07 16:29:06 +01:00
.. c:var :: list_core
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
2024-12-04 15:58:59 +01:00
List of MO indices which are in the core.
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
* :c:data: `dim_list_core_orb`
* :c:data: `mo_class`
* :c:data: `mo_num`
* :c:data: `n_core_orb`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `core_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `core_energy`
* :c:data: `core_energy_erf`
* :c:data: `core_fock_operator`
* :c:data: `core_fock_operator_erf`
* :c:data: `eigenvectors_fock_matrix_mo`
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `one_e_dm_mo_alpha_for_dft`
* :c:data: `one_e_dm_mo_alpha_for_dft_no_core`
* :c:data: `one_e_dm_mo_beta_for_dft`
* :c:data: `one_e_dm_mo_beta_for_dft_no_core`
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
.. c:var :: list_core_inact
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, 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:
.. hlist ::
:columns: 3
* :c:data: `dim_list_core_inact_orb`
* :c:data: `mo_num`
* :c:data: `n_core_inact_orb`
* :c:data: `n_int`
2019-03-07 16:29:06 +01:00
* :c:data: `reunion_of_core_inact_bitmask`
2024-12-04 15:58:59 +01:00
Needed by:
.. hlist ::
:columns: 3
* :c:data: `bielec_pqxx_array`
* :c:data: `bielec_pxxq_array`
* :c:data: `cholesky_no_total_transp`
* :c:data: `d0tu_alpha_ao`
* :c:data: `etwo`
* :c:data: `excit`
* :c:data: `fipq`
* :c:data: `gradvec2`
* :c:data: `hessdiag`
* :c:data: `hessmat`
* :c:data: `hessmat_peter`
* :c:data: `lowest_super_ci_coef_mo`
* :c:data: `mat_tmp_dm_super_ci`
* :c:data: `occnum`
* :c:data: `super_ci_dm`
* :c:data: `umat`
2019-03-07 16:29:06 +01:00
.. c:var :: list_core_inact_act
2019-05-28 10:23:50 +02:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
integer, allocatable :: list_core_inact_act (n_core_inact_act_orb)
2024-12-04 15:58:59 +01:00
integer, allocatable :: list_core_inact_act_reverse (mo_num)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
List of indices of the core inactive and active MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `mo_num`
2019-05-28 10:23:50 +02:00
* :c:data: `n_core_inact_act_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
* :c:data: `reunion_of_core_inact_act_bitmask`
2024-12-04 15:58:59 +01:00
Needed by:
.. hlist ::
:columns: 3
* :c:data: `etwo`
* :c:data: `fapq`
* :c:data: `fipq`
* :c:data: `two_e_dm_mo`
2019-03-07 16:29:06 +01:00
.. c:var :: list_core_inact_act_reverse
2019-05-28 10:23:50 +02:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
integer, allocatable :: list_core_inact_act (n_core_inact_act_orb)
2024-12-04 15:58:59 +01:00
integer, allocatable :: list_core_inact_act_reverse (mo_num)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
List of indices of the core inactive and active MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `mo_num`
2019-05-28 10:23:50 +02:00
* :c:data: `n_core_inact_act_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
* :c:data: `reunion_of_core_inact_act_bitmask`
2024-12-04 15:58:59 +01:00
Needed by:
.. hlist ::
:columns: 3
* :c:data: `etwo`
* :c:data: `fapq`
* :c:data: `fipq`
* :c:data: `two_e_dm_mo`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: list_core_inact_reverse
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer, allocatable :: list_core_inact (dim_list_core_inact_orb)
integer, allocatable :: list_core_inact_reverse (mo_num)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
List of indices of the core and inactive MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `dim_list_core_inact_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_core_inact_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `reunion_of_core_inact_bitmask`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `bielec_pqxx_array`
* :c:data: `bielec_pxxq_array`
* :c:data: `cholesky_no_total_transp`
* :c:data: `d0tu_alpha_ao`
* :c:data: `etwo`
* :c:data: `excit`
* :c:data: `fipq`
* :c:data: `gradvec2`
* :c:data: `hessdiag`
* :c:data: `hessmat`
* :c:data: `hessmat_peter`
* :c:data: `lowest_super_ci_coef_mo`
* :c:data: `mat_tmp_dm_super_ci`
* :c:data: `occnum`
* :c:data: `super_ci_dm`
* :c:data: `umat`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: list_core_reverse
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
2024-12-04 15:58:59 +01:00
List of MO indices which are in the core.
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
* :c:data: `dim_list_core_orb`
* :c:data: `mo_class`
* :c:data: `mo_num`
* :c:data: `n_core_orb`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `core_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `core_energy`
* :c:data: `core_energy_erf`
* :c:data: `core_fock_operator`
* :c:data: `core_fock_operator_erf`
* :c:data: `eigenvectors_fock_matrix_mo`
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `one_e_dm_mo_alpha_for_dft`
* :c:data: `one_e_dm_mo_alpha_for_dft_no_core`
* :c:data: `one_e_dm_mo_beta_for_dft`
* :c:data: `one_e_dm_mo_beta_for_dft_no_core`
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
.. c:var :: list_del
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_del (dim_list_del_orb)
integer, allocatable :: list_del_reverse (mo_num)
List of MO indices which are deleted.
Needs:
.. hlist ::
:columns: 3
* :c:data: `dim_list_del_orb`
* :c:data: `mo_class`
* :c:data: `mo_num`
* :c:data: `n_del_orb`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `del_bitmask`
2019-03-07 16:29:06 +01:00
.. c:var :: list_del_reverse
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer, allocatable :: list_del (dim_list_del_orb)
2019-03-07 16:29:06 +01:00
integer, allocatable :: list_del_reverse (mo_num)
2024-12-04 15:58:59 +01:00
List of MO indices which are deleted.
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `dim_list_del_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_del_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `del_bitmask`
2019-03-07 16:29:06 +01:00
.. c:var :: list_inact
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_inact_reverse (mo_num)
2024-12-04 15:58:59 +01:00
List of MO indices which are inactive.
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `dim_list_inact_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_inact_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
* :c:data: `eigenvectors_fock_matrix_mo`
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `inact_bitmask`
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
2019-03-07 16:29:06 +01:00
2019-05-28 10:23:50 +02:00
.. c:var :: list_inact_act
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_inact_act (n_inact_act_orb)
2024-12-04 15:58:59 +01:00
integer, allocatable :: list_inact_act_reverse (mo_num)
2019-05-28 10:23:50 +02:00
2024-12-04 15:58:59 +01:00
List of indices of the inactive and active MOs
2019-05-28 10:23:50 +02:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `mo_num`
2019-05-28 10:23:50 +02:00
* :c:data: `n_inact_act_orb`
2024-12-04 15:58:59 +01:00
* :c:data: `n_int`
* :c:data: `reunion_of_inact_act_bitmask`
2019-05-28 10:23:50 +02:00
2024-12-04 15:58:59 +01:00
.. c:var :: list_inact_act_reverse
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer, allocatable :: list_inact_act (n_inact_act_orb)
integer, allocatable :: list_inact_act_reverse (mo_num)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
List of indices of the inactive and active MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_inact_act_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `reunion_of_inact_act_bitmask`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: list_inact_reverse
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_inact_reverse (mo_num)
2024-12-04 15:58:59 +01:00
List of MO indices which are inactive.
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `dim_list_inact_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_inact_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
* :c:data: `eigenvectors_fock_matrix_mo`
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `inact_bitmask`
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: list_virt
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_virt_reverse (mo_num)
2024-12-04 15:58:59 +01:00
List of MO indices which are virtual
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `dim_list_virt_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_virt_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `cholesky_no_total_transp`
2019-03-07 16:29:06 +01:00
* :c:data: `eigenvectors_fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `excit`
2019-03-07 16:29:06 +01:00
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `gradvec2`
* :c:data: `hessdiag`
* :c:data: `hessmat`
* :c:data: `hessmat_peter`
* :c:data: `lowest_super_ci_coef_mo`
* :c:data: `mat_tmp_dm_super_ci`
* :c:data: `super_ci_dm`
* :c:data: `umat`
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: list_virt_reverse
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_virt_reverse (mo_num)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
List of MO indices which are virtual
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `dim_list_virt_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_virt_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `cholesky_no_total_transp`
2019-03-07 16:29:06 +01:00
* :c:data: `eigenvectors_fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `excit`
2019-03-07 16:29:06 +01:00
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `gradvec2`
* :c:data: `hessdiag`
* :c:data: `hessmat`
* :c:data: `hessmat_peter`
* :c:data: `lowest_super_ci_coef_mo`
* :c:data: `mat_tmp_dm_super_ci`
* :c:data: `super_ci_dm`
* :c:data: `umat`
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: mo_coef_begin_iteration
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/track_orb.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
double precision, allocatable :: mo_coef_begin_iteration (ao_num,mo_num)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Void provider to store the coefficients of the |MO| basis at the beginning of the SCF iteration
Useful to track some orbitals
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `ao_num`
* :c:data: `mo_num`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: mpi_bit_kind
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/mpi.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer :: mpi_bit_kind
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
MPI bit kind type
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: n_act_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer :: n_act_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Number of active MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
* :c:data: `mpi_master`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Needed by:
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. hlist ::
:columns: 3
* :c:data: `act_2_rdm_aa_mo`
* :c:data: `act_2_rdm_ab_mo`
* :c:data: `act_2_rdm_bb_mo`
* :c:data: `act_2_rdm_spin_trace_mo`
* :c:data: `act_2_rdm_trans_spin_trace_mo`
* :c:data: `act_bitmask`
* :c:data: `bielec_pqxx_array`
* :c:data: `bielec_pqxx_no_array`
* :c:data: `bielec_pxxq_array`
* :c:data: `bielec_pxxq_no_array`
* :c:data: `bielecci`
* :c:data: `bielecci_no`
* :c:data: `cholesky_no_1_idx_transp`
* :c:data: `cholesky_no_2_idx_transp`
* :c:data: `cholesky_no_total_transp`
* :c:data: `core_fock_operator`
* :c:data: `core_fock_operator_erf`
* :c:data: `d0tu`
* :c:data: `d0tu_alpha_ao`
* :c:data: `dim_list_act_orb`
* :c:data: `eigenvectors_fock_matrix_mo`
* :c:data: `etwo`
* :c:data: `excit`
* :c:data: `fapq`
* :c:data: `fock_matrix_mo`
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `gradvec2`
* :c:data: `hessdiag`
* :c:data: `hessmat`
* :c:data: `hessmat_peter`
* :c:data: `list_act`
* :c:data: `lowest_super_ci_coef_mo`
* :c:data: `mat_tmp_dm_super_ci`
* :c:data: `n_c_a_prov`
* :c:data: `n_core_inact_act_orb`
* :c:data: `n_inact_act_orb`
* :c:data: `natorbsci`
* :c:data: `natorbsci_mos`
* :c:data: `nmonoex`
* :c:data: `nsomomax`
* :c:data: `occnum`
* :c:data: `one_ints_no`
* :c:data: `p0tuvx`
* :c:data: `p0tuvx_no`
* :c:data: `p0tuvx_peter`
* :c:data: `state_av_act_2_rdm_aa_mo`
* :c:data: `state_av_act_2_rdm_ab_mo`
* :c:data: `state_av_act_2_rdm_bb_mo`
* :c:data: `state_av_act_2_rdm_spin_trace_mo`
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
* :c:data: `super_ci_dm`
* :c:data: `umat`
.. c:var :: n_all_but_del_orb
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer :: n_all_but_del_orb
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
* :c:data: `mo_class`
* :c:data: `mo_num`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_all_but_del_orb`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: n_core_inact_act_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer :: n_core_inact_act_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Number of core inactive and active MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `n_act_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `n_core_orb`
2024-12-04 15:58:59 +01:00
* :c:data: `n_inact_orb`
Needed by:
.. hlist ::
:columns: 3
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
* :c:data: `bielec_pqxx_array`
* :c:data: `bielec_pqxx_no_array`
* :c:data: `bielec_pxxq_array`
* :c:data: `bielec_pxxq_no_array`
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `list_core_inact_act`
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
* :c:data: `two_e_dm_mo`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: n_core_inact_orb
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer :: n_core_inact_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
n_core + n_inact
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `n_int`
* :c:data: `reunion_of_core_inact_bitmask`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `bielec_pqxx_array`
* :c:data: `bielec_pqxx_no_array`
* :c:data: `bielec_pxxq_array`
* :c:data: `bielec_pxxq_no_array`
* :c:data: `cholesky_no_total_transp`
* :c:data: `d0tu_alpha_ao`
* :c:data: `dim_list_core_inact_orb`
* :c:data: `etwo`
* :c:data: `excit`
* :c:data: `fipq`
* :c:data: `gradvec2`
* :c:data: `hessdiag`
* :c:data: `hessmat`
* :c:data: `hessmat_peter`
* :c:data: `list_core_inact`
* :c:data: `lowest_super_ci_coef_mo`
* :c:data: `mat_tmp_dm_super_ci`
* :c:data: `n_c_a_prov`
* :c:data: `nmonoex`
* :c:data: `occnum`
* :c:data: `super_ci_dm`
* :c:data: `umat`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: n_core_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer :: n_core_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Number of core MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
2019-03-07 16:29:06 +01:00
* :c:data: `mpi_master`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `core_bitmask`
* :c:data: `core_energy`
* :c:data: `core_energy_erf`
* :c:data: `core_fock_operator`
* :c:data: `core_fock_operator_erf`
* :c:data: `dim_list_core_orb`
* :c:data: `eigenvectors_fock_matrix_mo`
* :c:data: `fock_matrix_mo`
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `list_core`
* :c:data: `n_core_inact_act_orb`
* :c:data: `one_e_dm_mo_alpha_for_dft`
* :c:data: `one_e_dm_mo_alpha_for_dft_no_core`
* :c:data: `one_e_dm_mo_beta_for_dft`
* :c:data: `one_e_dm_mo_beta_for_dft_no_core`
* :c:data: `pt2_f`
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: n_del_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/core_inact_act_virt.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer :: n_del_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Number of deleted MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `mo_class`
* :c:data: `mo_num`
2019-03-07 16:29:06 +01:00
* :c:data: `mpi_master`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `del_bitmask`
* :c:data: `dim_list_del_orb`
* :c:data: `list_del`
2019-03-07 16:29:06 +01:00
2019-05-28 10:23:50 +02:00
.. c:var :: n_inact_act_orb
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer :: n_inact_act_orb
2024-12-04 15:58:59 +01:00
n_inact + n_act
2019-05-28 10:23:50 +02:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `n_act_orb`
* :c:data: `n_inact_orb`
2019-05-28 10:23:50 +02:00
Needed by:
.. hlist ::
:columns: 3
* :c:data: `list_inact_act`
2019-03-07 16:29:06 +01:00
.. c:var :: n_inact_orb
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer :: n_inact_orb
2024-12-04 15:58:59 +01:00
Number of inactive MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
* :c:data: `mo_class`
* :c:data: `mo_num`
* :c:data: `mpi_master`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `dim_list_inact_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `eigenvectors_fock_matrix_mo`
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `full_occ_2_rdm_aa_mo`
* :c:data: `full_occ_2_rdm_ab_mo`
* :c:data: `full_occ_2_rdm_bb_mo`
* :c:data: `full_occ_2_rdm_spin_trace_mo`
* :c:data: `inact_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `list_inact`
2019-05-28 10:23:50 +02:00
* :c:data: `n_core_inact_act_orb`
* :c:data: `n_inact_act_orb`
2024-12-04 15:58:59 +01:00
* :c:data: `state_av_full_occ_2_rdm_aa_mo`
* :c:data: `state_av_full_occ_2_rdm_ab_mo`
* :c:data: `state_av_full_occ_2_rdm_bb_mo`
* :c:data: `state_av_full_occ_2_rdm_spin_trace_mo`
2019-03-07 16:29:06 +01:00
.. c:var :: n_int
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer :: n_int
Number of 64-bit integers needed to represent determinants as binary strings
Needs:
.. hlist ::
:columns: 3
* :c:data: `mo_num`
* :c:data: `mpi_master`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
* :c:data: `cfg_seniority_index`
2019-03-07 16:29:06 +01:00
* :c:data: `ci_electronic_energy`
* :c:data: `closed_shell_ref_bitmask`
* :c:data: `coef_hf_selector`
2024-12-04 15:58:59 +01:00
* :c:data: `core_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `core_inact_act_bitmask_4`
2024-12-04 15:58:59 +01:00
* :c:data: `del_bitmask`
* :c:data: `det_to_configuration`
* :c:data: `dettocsftransformationmatrix`
2019-03-07 16:29:06 +01:00
* :c:data: `diagonal_h_matrix_on_psi_det`
2024-12-04 15:58:59 +01:00
* :c:data: `dominant_dets_of_cfgs`
2019-03-07 16:29:06 +01:00
* :c:data: `double_exc_bitmask`
* :c:data: `exc_degree_per_selectors`
* :c:data: `fock_operator_closed_shell_ref_bitmask`
* :c:data: `fock_wee_closed_shell`
* :c:data: `full_ijkl_bitmask`
* :c:data: `full_ijkl_bitmask_4`
* :c:data: `generators_bitmask`
* :c:data: `global_selection_buffer`
2024-12-04 15:58:59 +01:00
* :c:data: `gradvec_old`
2019-03-07 16:29:06 +01:00
* :c:data: `h_apply_buffer_allocated`
* :c:data: `h_matrix_all_dets`
* :c:data: `h_matrix_cas`
2024-12-04 15:58:59 +01:00
* :c:data: `h_matrix_diag_all_dets`
* :c:data: `hessmat_old`
2019-03-07 16:29:06 +01:00
* :c:data: `hf_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `inact_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `inact_virt_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `list_core_inact`
2019-03-07 16:29:06 +01:00
* :c:data: `list_core_inact_act`
2024-12-04 15:58:59 +01:00
* :c:data: `list_inact_act`
2019-03-07 16:29:06 +01:00
* :c:data: `max_degree_exc`
* :c:data: `mo_two_e_integrals_erf_in_map`
* :c:data: `mo_two_e_integrals_in_map`
2024-12-04 15:58:59 +01:00
* :c:data: `multi_s_dipole_moment`
2019-03-07 16:29:06 +01:00
* :c:data: `n_core_inact_orb`
2024-12-04 15:58:59 +01:00
* :c:data: `n_det_generators`
* :c:data: `n_dominant_dets_of_cfgs`
* :c:data: `n_elec_alpha_for_psi_configuration`
2019-03-07 16:29:06 +01:00
* :c:data: `one_e_dm_mo_alpha`
2024-12-04 15:58:59 +01:00
* :c:data: `one_e_tr_dm_mo`
* :c:data: `one_e_tr_dm_mo_alpha`
* :c:data: `orb_swap`
* :c:data: `ormas_bitmask`
* :c:data: `p0tuvx`
* :c:data: `p0tuvx_peter`
2019-03-07 16:29:06 +01:00
* :c:data: `psi_bilinear_matrix_values`
* :c:data: `psi_cas`
* :c:data: `psi_cas_sorted_bit`
2024-12-04 15:58:59 +01:00
* :c:data: `psi_configuration`
* :c:data: `psi_configuration_sorted`
* :c:data: `psi_configuration_to_psi_det`
* :c:data: `psi_csf_coef`
2019-03-07 16:29:06 +01:00
* :c:data: `psi_det`
* :c:data: `psi_det_alpha`
* :c:data: `psi_det_alpha_unique`
* :c:data: `psi_det_beta`
* :c:data: `psi_det_beta_unique`
* :c:data: `psi_det_generators`
* :c:data: `psi_det_hii`
* :c:data: `psi_det_sorted`
* :c:data: `psi_det_sorted_bit`
* :c:data: `psi_energy`
* :c:data: `psi_energy_two_e`
2024-12-04 15:58:59 +01:00
* :c:data: `psi_energy_two_e_trans`
2019-03-07 16:29:06 +01:00
* :c:data: `psi_non_cas`
* :c:data: `psi_non_cas_sorted_bit`
* :c:data: `psi_selectors`
* :c:data: `psi_selectors_diag_h_mat`
* :c:data: `ref_bitmask`
* :c:data: `ref_bitmask_energy`
* :c:data: `ref_closed_shell_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `reunion_of_act_virt_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `reunion_of_bitmask`
* :c:data: `reunion_of_core_inact_act_bitmask`
* :c:data: `reunion_of_core_inact_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `reunion_of_inact_act_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `s2_matrix_all_dets`
* :c:data: `s2_values`
* :c:data: `single_exc_bitmask`
* :c:data: `singles_alpha_csc`
* :c:data: `singles_alpha_csc_idx`
2024-12-04 15:58:59 +01:00
* :c:data: `singles_alpha_csc_map`
2019-03-07 16:29:06 +01:00
* :c:data: `singles_beta_csc`
* :c:data: `singles_beta_csc_idx`
2024-12-04 15:58:59 +01:00
* :c:data: `singles_beta_csc_map`
2019-03-07 16:29:06 +01:00
* :c:data: `unpaired_alpha_electrons`
2024-12-04 15:58:59 +01:00
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `virt_bitmask_4`
.. c:var :: n_virt_orb
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer :: n_virt_orb
2024-12-04 15:58:59 +01:00
Number of virtual MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
* :c:data: `mo_class`
* :c:data: `mo_num`
* :c:data: `mpi_master`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `cholesky_no_total_transp`
* :c:data: `dim_list_virt_orb`
2019-03-07 16:29:06 +01:00
* :c:data: `eigenvectors_fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `excit`
2019-03-07 16:29:06 +01:00
* :c:data: `fock_matrix_mo`
2024-12-04 15:58:59 +01:00
* :c:data: `gradvec2`
* :c:data: `hessdiag`
* :c:data: `hessmat`
* :c:data: `hessmat_peter`
* :c:data: `list_virt`
* :c:data: `lowest_super_ci_coef_mo`
* :c:data: `mat_tmp_dm_super_ci`
* :c:data: `n_c_a_prov`
* :c:data: `nmonoex`
* :c:data: `super_ci_dm`
* :c:data: `umat`
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: ormas_bitmask
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/bitmasks_ormas.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: ormas_bitmask (N_int,ormas_n_space)
bitmask for each ormas space
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
* :c:data: `ormas_list_orb`
* :c:data: `ormas_n_orb`
* :c:data: `ormas_n_space`
.. c:var :: ormas_list_orb
File : :file: `bitmask/bitmasks_ormas.irp.f`
.. code :: fortran
integer, allocatable :: ormas_list_orb (ormas_max_n_orb,ormas_n_space)
list of orbitals in each ormas space
Needs:
.. hlist ::
:columns: 3
* :c:data: `ormas_n_orb`
* :c:data: `ormas_n_space`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `ormas_bitmask`
.. c:var :: ormas_max_e
File : :file: `bitmask/bitmasks_ormas.irp.f`
.. code :: fortran
integer, allocatable :: ormas_max_e (ormas_n_space)
max nelec in each active space
Needs:
.. hlist ::
:columns: 3
* :c:data: `elec_num`
* :c:data: `ezfio_filename`
* :c:data: `mpi_master`
* :c:data: `ormas_n_space`
.. c:var :: ormas_max_n_orb
File : :file: `bitmask/bitmasks_ormas.irp.f`
.. code :: fortran
integer, allocatable :: ormas_n_orb (ormas_n_space)
integer :: ormas_max_n_orb
number of orbitals in each ormas space
Needs:
.. hlist ::
:columns: 3
* :c:data: `mo_num`
* :c:data: `ormas_mstart`
* :c:data: `ormas_n_space`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `ormas_bitmask`
* :c:data: `ormas_list_orb`
.. c:var :: ormas_min_e
File : :file: `bitmask/bitmasks_ormas.irp.f`
.. code :: fortran
integer, allocatable :: ormas_min_e (ormas_n_space)
min nelec in each active space
Needs:
.. hlist ::
:columns: 3
* :c:data: `ezfio_filename`
* :c:data: `mpi_master`
* :c:data: `ormas_n_space`
.. c:var :: ormas_mstart
File : :file: `bitmask/bitmasks_ormas.irp.f`
.. code :: fortran
integer, allocatable :: ormas_mstart (ormas_n_space)
first orbital idx in each active space
Needs:
.. hlist ::
:columns: 3
* :c:data: `ezfio_filename`
* :c:data: `mpi_master`
* :c:data: `ormas_n_space`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `ormas_n_orb`
.. c:var :: ormas_n_orb
File : :file: `bitmask/bitmasks_ormas.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer, allocatable :: ormas_n_orb (ormas_n_space)
integer :: ormas_max_n_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
number of orbitals in each ormas space
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `mo_num`
* :c:data: `ormas_mstart`
* :c:data: `ormas_n_space`
Needed by:
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. hlist ::
:columns: 3
* :c:data: `ormas_bitmask`
* :c:data: `ormas_list_orb`
2019-03-07 16:29:06 +01:00
.. c:var :: ref_bitmask
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: ref_bitmask (N_int,2)
Reference bit mask, used in Slater rules, chosen as Hartree-Fock bitmask
Needs:
.. hlist ::
:columns: 3
* :c:data: `hf_bitmask`
* :c:data: `n_int`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `closed_shell_ref_bitmask`
* :c:data: `coef_hf_selector`
* :c:data: `diagonal_h_matrix_on_psi_det`
* :c:data: `exc_degree_per_selectors`
* :c:data: `psi_det_hii`
* :c:data: `psi_selectors_diag_h_mat`
* :c:data: `ref_bitmask_energy`
* :c:data: `ref_closed_shell_bitmask`
2024-12-04 15:58:59 +01:00
.. c:var :: reunion_of_act_virt_bitmask
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer(bit_kind), allocatable :: reunion_of_act_virt_bitmask (N_int,2)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Reunion of the inactive and active bitmasks
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `virt_bitmask`
Needed by:
.. hlist ::
:columns: 3
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
* :c:data: `generators_bitmask`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:var :: reunion_of_bitmask
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
integer(bit_kind), allocatable :: reunion_of_bitmask (N_int,2)
2019-03-07 16:29:06 +01:00
Reunion of the inactive, active and virtual bitmasks
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
* :c:data: `inact_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
.. c:var :: reunion_of_core_inact_act_bitmask
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: reunion_of_core_inact_act_bitmask (N_int,2)
Reunion of the core, inactive and active bitmasks
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
* :c:data: `reunion_of_core_inact_bitmask`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `core_inact_act_bitmask_4`
* :c:data: `list_core_inact_act`
.. c:var :: reunion_of_core_inact_bitmask
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: reunion_of_core_inact_bitmask (N_int,2)
Reunion of the core and inactive and virtual bitmasks
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `core_bitmask`
* :c:data: `inact_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
Needed by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_core_inact`
2019-03-07 16:29:06 +01:00
* :c:data: `n_core_inact_orb`
2024-12-04 15:58:59 +01:00
* :c:data: `n_det_generators`
* :c:data: `psi_det_generators`
2019-03-07 16:29:06 +01:00
* :c:data: `reunion_of_core_inact_act_bitmask`
2024-12-04 15:58:59 +01:00
.. c:var :: reunion_of_inact_act_bitmask
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: reunion_of_inact_act_bitmask (N_int,2)
Reunion of the inactive and active bitmasks
Needs:
.. hlist ::
:columns: 3
* :c:data: `act_bitmask`
* :c:data: `inact_bitmask`
* :c:data: `n_int`
Needed by:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`
* :c:data: `list_inact_act`
2019-03-07 16:29:06 +01:00
.. c:var :: unpaired_alpha_electrons
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: unpaired_alpha_electrons (N_int)
Bitmask reprenting the unpaired alpha electrons in the HF_bitmask
Needs:
.. hlist ::
:columns: 3
* :c:data: `hf_bitmask`
* :c:data: `n_int`
.. c:var :: virt_bitmask
File : :file: `bitmask/core_inact_act_virt.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
2024-12-04 15:58:59 +01:00
Bitmask identifying the virtual MOs
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_virt`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `n_virt_orb`
2019-03-07 16:29:06 +01:00
Needed by:
.. hlist ::
:columns: 3
* :c:data: `inact_virt_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `n_det_generators`
* :c:data: `psi_det_generators`
* :c:data: `reunion_of_act_virt_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `reunion_of_bitmask`
* :c:data: `virt_bitmask_4`
.. c:var :: virt_bitmask_4
File : :file: `bitmask/bitmasks.irp.f`
.. code :: fortran
integer(bit_kind), allocatable :: virt_bitmask_4 (N_int,4)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
Subroutines / functions
-----------------------
.. c:function :: bitstring_to_hexa:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine bitstring_to_hexa( output, string, Nint )
Transform a bit string to a string in hexadecimal format for printing
Called by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:func: `debug_cfg`
2019-03-07 16:29:06 +01:00
* :c:func: `debug_det`
* :c:func: `debug_spindet`
.. c:function :: bitstring_to_list:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine bitstring_to_list( string, list, n_elements, Nint)
2024-12-04 15:58:59 +01:00
Gives the indices(+1) of the bits set to 1 in the bit string
2019-03-07 16:29:06 +01:00
Called by:
.. hlist ::
:columns: 3
* :c:func: `add_integrals_to_map`
* :c:func: `add_integrals_to_map_erf`
* :c:func: `create_microlist`
* :c:func: `example_bitmask`
2024-12-04 15:58:59 +01:00
* :c:func: `generate_cas_space`
2019-03-07 16:29:06 +01:00
* :c:func: `getmobiles`
2024-12-04 15:58:59 +01:00
* :c:data: `list_core_inact`
2019-03-07 16:29:06 +01:00
* :c:data: `list_core_inact_act`
2024-12-04 15:58:59 +01:00
* :c:data: `list_inact_act`
2019-03-07 16:29:06 +01:00
* :c:data: `ref_bitmask_energy`
2024-12-04 15:58:59 +01:00
* :c:func: `splash_p`
* :c:func: `spot_hasbeen`
2019-03-07 16:29:06 +01:00
.. c:function :: bitstring_to_str:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine bitstring_to_str( output, string, Nint )
Transform a bit string to a string for printing
Called by:
.. hlist ::
:columns: 3
* :c:func: `add_integrals_to_map_erf`
* :c:func: `example_bitmask`
* :c:func: `print_det`
2024-12-04 15:58:59 +01:00
* :c:func: `print_det_one_dimension`
2019-03-07 16:29:06 +01:00
* :c:func: `print_spindet`
.. c:function :: broadcast_chunks_bit_kind:
File : :file: `bitmask/mpi.irp.f`
.. code :: fortran
subroutine broadcast_chunks_bit_kind(A, LDA)
Broadcast with chunks of ~2GB
.. c:function :: clear_bit_to_integer:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine clear_bit_to_integer(i_physical,key,Nint)
set to 0 the bit number i_physical in the bitstring key
Called by:
.. hlist ::
:columns: 3
* :c:func: `example_bitmask`
* :c:data: `ref_closed_shell_bitmask`
2024-12-04 15:58:59 +01:00
.. c:function :: configuration_to_str:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine configuration_to_str( output, string, Nint )
Transform the bit string of a configuration to a string for printing
Called by:
.. hlist ::
:columns: 3
* :c:func: `debug_cfg`
.. c:function :: debug_cfg:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine debug_cfg(string,Nint)
Subroutine to print the content of a determinant in '+-' notation and
hexadecimal representation.
Calls:
.. hlist ::
:columns: 3
* :c:func: `bitstring_to_hexa`
* :c:func: `configuration_to_str`
2019-03-07 16:29:06 +01:00
.. c:function :: debug_det:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine debug_det(string,Nint)
Subroutine to print the content of a determinant in '+-' notation and
hexadecimal representation.
Called by:
.. hlist ::
:columns: 3
* :c:func: `build_fock_tmp`
* :c:func: `example_determinants`
* :c:func: `get_excitation_degree_vector_single_or_exchange_verbose`
2024-12-04 15:58:59 +01:00
* :c:func: `get_particles_general`
2019-03-07 16:29:06 +01:00
* :c:func: `number_of_holes_verbose`
* :c:func: `number_of_particles_verbose`
* :c:func: `routine_example_psi_det`
Calls:
.. hlist ::
:columns: 3
* :c:func: `bitstring_to_hexa`
* :c:func: `print_det`
.. c:function :: debug_spindet:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine debug_spindet(string,Nint)
Subroutine to print the content of a determinant in '+-' notation and
hexadecimal representation.
Calls:
.. hlist ::
:columns: 3
* :c:func: `bitstring_to_hexa`
* :c:func: `print_spindet`
2024-12-04 15:58:59 +01:00
.. c:function :: det_allowed_ormas:
File : :file: `bitmask/bitmasks_ormas.irp.f`
.. code :: fortran
logical function det_allowed_ormas(key_in)
return true if det has allowable ormas occupations
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
* :c:data: `ormas_bitmask`
* :c:data: `ormas_max_e`
* :c:data: `ormas_min_e`
* :c:data: `ormas_n_space`
2019-03-07 16:29:06 +01:00
.. c:function :: example_bitmask:
File : :file: `bitmask/example.irp.f`
.. code :: fortran
subroutine example_bitmask
subroutine that illustrates the main features available in bitmask
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `list_act`
* :c:data: `list_core`
2019-03-07 16:29:06 +01:00
* :c:data: `list_inact`
2024-12-04 15:58:59 +01:00
* :c:data: `list_virt`
2019-03-07 16:29:06 +01:00
* :c:data: `mo_num`
2024-12-04 15:58:59 +01:00
* :c:data: `n_act_orb`
* :c:data: `n_core_orb`
* :c:data: `n_inact_orb`
* :c:data: `n_int`
* :c:data: `n_virt_orb`
2019-03-07 16:29:06 +01:00
Calls:
.. hlist ::
:columns: 3
* :c:func: `bitstring_to_list`
* :c:func: `bitstring_to_str`
* :c:func: `clear_bit_to_integer`
* :c:func: `set_bit_to_integer`
2024-12-04 15:58:59 +01:00
.. c:function :: initialize_mo_coef_begin_iteration:
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/track_orb.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
subroutine initialize_mo_coef_begin_iteration
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Initialize :c:data: `mo_coef_begin_iteration` to the current :c:data: `mo_coef`
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `mo_coef`
* :c:data: `mo_coef_begin_iteration`
Called by:
.. hlist ::
:columns: 3
* :c:func: `damping_scf`
* :c:func: `roothaan_hall_scf`
2019-03-07 16:29:06 +01:00
.. c:function :: is_a_1h:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
logical function is_a_1h(key_in)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
.. c:function :: is_a_1h1p:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
logical function is_a_1h1p(key_in)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
.. c:function :: is_a_1h2p:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
logical function is_a_1h2p(key_in)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
.. c:function :: is_a_1p:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
logical function is_a_1p(key_in)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
.. c:function :: is_a_2h:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
logical function is_a_2h(key_in)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
.. c:function :: is_a_2h1p:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
logical function is_a_2h1p(key_in)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
.. c:function :: is_a_2p:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
logical function is_a_2p(key_in)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
.. c:function :: is_a_two_holes_two_particles:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
logical 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
2024-12-04 15:58:59 +01:00
this is calculated using the act_bitmask that defines the active
2019-03-07 16:29:06 +01:00
orbital space, the inact_bitmasl that defines the inactive oribital space
and the virt_bitmask that defines the virtual orbital space
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `reunion_of_core_inact_bitmask`
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
.. c:function :: is_i_in_virtual:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
logical function is_i_in_virtual(i)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `virt_bitmask`
.. c:function :: is_integer_in_string:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
logical function is_integer_in_string(bite,string,Nint)
Calls:
.. hlist ::
:columns: 3
* :c:func: `set_bit_to_integer`
2019-03-07 16:29:06 +01:00
.. c:function :: is_the_hole_in_det:
File : :file: `bitmask/find_hole.irp.f`
.. code :: fortran
logical function is_the_hole_in_det(key_in,ispin,i_hole)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
.. c:function :: is_the_particl_in_det:
File : :file: `bitmask/find_hole.irp.f`
.. code :: fortran
logical function is_the_particl_in_det(key_in,ispin,i_particl)
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
.. c:function :: list_to_bitstring:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine 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:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
* :c:data: `core_bitmask`
* :c:data: `del_bitmask`
* :c:func: `generate_cas_space`
2019-03-07 16:29:06 +01:00
* :c:data: `hf_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `inact_bitmask`
* :c:func: `orb_range_2_rdm_openmp_work_1`
* :c:func: `orb_range_2_rdm_openmp_work_2`
* :c:func: `orb_range_2_rdm_openmp_work_3`
* :c:func: `orb_range_2_rdm_openmp_work_4`
* :c:func: `orb_range_2_rdm_openmp_work_n_int`
* :c:func: `orb_range_2_rdm_state_av_openmp_work_1`
* :c:func: `orb_range_2_rdm_state_av_openmp_work_2`
* :c:func: `orb_range_2_rdm_state_av_openmp_work_3`
* :c:func: `orb_range_2_rdm_state_av_openmp_work_4`
* :c:func: `orb_range_2_rdm_state_av_openmp_work_n_int`
* :c:func: `orb_range_2_trans_rdm_openmp_work_1`
* :c:func: `orb_range_2_trans_rdm_openmp_work_2`
* :c:func: `orb_range_2_trans_rdm_openmp_work_3`
* :c:func: `orb_range_2_trans_rdm_openmp_work_4`
* :c:func: `orb_range_2_trans_rdm_openmp_work_n_int`
* :c:data: `ormas_bitmask`
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
.. c:function :: modify_bitmasks_for_hole:
File : :file: `bitmask/modify_bitmasks.irp.f`
.. code :: fortran
subroutine modify_bitmasks_for_hole(i_hole)
modify the generators_bitmask in order that one can only excite
the electrons occupying i_hole
Needs:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`
* :c:data: `index_holes_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `n_int`
2019-03-07 16:29:06 +01:00
.. c:function :: modify_bitmasks_for_hole_in_out:
File : :file: `bitmask/modify_bitmasks.irp.f`
.. code :: fortran
subroutine 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:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`
* :c:data: `index_holes_bitmask`
.. c:function :: modify_bitmasks_for_particl:
File : :file: `bitmask/modify_bitmasks.irp.f`
.. code :: fortran
subroutine 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:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `index_particl_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
.. c:function :: number_of_holes:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
integer function number_of_holes(key_in)
Function that returns the number of holes in the inact space
2024-12-04 15:58:59 +01:00
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
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `reunion_of_core_inact_bitmask`
2019-03-07 16:29:06 +01:00
.. c:function :: number_of_holes_verbose:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
integer function number_of_holes_verbose(key_in)
function that returns the number of holes in the inact space
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `reunion_of_core_inact_bitmask`
2019-03-07 16:29:06 +01:00
Calls:
.. hlist ::
:columns: 3
* :c:func: `debug_det`
.. c:function :: number_of_particles:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
integer function number_of_particles(key_in)
function that returns the number of particles in the virtual space
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
.. c:function :: number_of_particles_verbose:
File : :file: `bitmask/bitmask_cas_routines.irp.f`
.. code :: fortran
integer function number_of_particles_verbose(key_in)
function that returns the number of particles in the inact space
Needs:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:data: `act_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
2024-12-04 15:58:59 +01:00
* :c:data: `virt_bitmask`
2019-03-07 16:29:06 +01:00
Calls:
.. hlist ::
:columns: 3
* :c:func: `debug_det`
2024-12-04 15:58:59 +01:00
.. c:function :: ormas_occ:
File : :file: `bitmask/bitmasks_ormas.irp.f`
.. code :: fortran
subroutine ormas_occ(key_in, occupancies)
number of electrons in each ormas space
Needs:
.. hlist ::
:columns: 3
* :c:data: `n_int`
* :c:data: `ormas_bitmask`
* :c:data: `ormas_n_space`
2019-03-07 16:29:06 +01:00
.. c:function :: print_det:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine print_det(string,Nint)
Subroutine to print the content of a determinant using the '+-' notation
Called by:
.. hlist ::
:columns: 3
* :c:func: `debug_det`
* :c:func: `example_determinants`
* :c:func: `print_generators_bitmasks_particles`
Calls:
.. hlist ::
:columns: 3
* :c:func: `bitstring_to_str`
2024-12-04 15:58:59 +01:00
.. c:function :: print_det_one_dimension:
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/bitmasks_routines.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
subroutine print_det_one_dimension(string,Nint)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Subroutine to print the content of a determinant using the '+-' notation
2019-03-07 16:29:06 +01:00
Calls:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:func: `bitstring_to_str`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:function :: print_generators_bitmasks_holes:
2019-03-07 16:29:06 +01:00
File : :file: `bitmask/modify_bitmasks.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
subroutine print_generators_bitmasks_holes
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`
* :c:data: `index_holes_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `n_int`
2019-03-07 16:29:06 +01:00
.. c:function :: print_generators_bitmasks_particles:
File : :file: `bitmask/modify_bitmasks.irp.f`
.. code :: fortran
subroutine print_generators_bitmasks_particles
Needs:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `index_particl_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
Calls:
.. hlist ::
:columns: 3
* :c:func: `print_det`
2024-12-04 15:58:59 +01:00
.. c:function :: print_spindet:
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/bitmasks_routines.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
subroutine print_spindet(string,Nint)
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Subroutine to print the content of a determinant using the '+-' notation
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
Called by:
2019-03-07 16:29:06 +01:00
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:func: `debug_spindet`
2019-03-07 16:29:06 +01:00
Calls:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:func: `bitstring_to_str`
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
.. c:function :: reorder_core_orb:
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
File : :file: `bitmask/track_orb.irp.f`
2019-03-07 16:29:06 +01:00
.. code :: fortran
2024-12-04 15:58:59 +01:00
subroutine reorder_core_orb
2019-03-07 16:29:06 +01:00
2024-12-04 15:58:59 +01:00
routines that takes the current :c:data: `mo_coef` and reorder the core orbitals (see :c:data: `list_core` and :c:data: `n_core_orb` ) according to the overlap with :c:data: `mo_coef_begin_iteration`
Needs:
.. hlist ::
:columns: 3
* :c:data: `ao_num`
* :c:data: `ao_overlap`
* :c:data: `list_core`
* :c:data: `mo_coef`
* :c:data: `mo_coef_begin_iteration`
* :c:data: `mo_num`
* :c:data: `n_core_orb`
2019-03-07 16:29:06 +01:00
Called by:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:func: `damping_scf`
* :c:func: `roothaan_hall_scf`
2019-03-07 16:29:06 +01:00
Calls:
.. hlist ::
:columns: 3
2024-12-04 15:58:59 +01:00
* :c:func: `dsort`
2019-03-07 16:29:06 +01:00
.. c:function :: set_bit_to_integer:
File : :file: `bitmask/bitmasks_routines.irp.f`
.. code :: fortran
subroutine set_bit_to_integer(i_physical,key,Nint)
set to 1 the bit number i_physical in the bitstring key
Called by:
.. hlist ::
:columns: 3
* :c:func: `example_bitmask`
2024-12-04 15:58:59 +01:00
* :c:func: `is_integer_in_string`
* :c:data: `orb_swap`
2019-03-07 16:29:06 +01:00
.. c:function :: set_bitmask_hole_as_input:
File : :file: `bitmask/modify_bitmasks.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
subroutine set_bitmask_hole_as_input(input_bitmask)
2019-03-07 16:29:06 +01:00
set the generators_bitmask for the holes
2024-12-04 15:58:59 +01:00
as the input_bitmask
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`
* :c:data: `index_holes_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `n_int`
2019-03-07 16:29:06 +01:00
Touches:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`
.. c:function :: set_bitmask_particl_as_input:
File : :file: `bitmask/modify_bitmasks.irp.f`
.. code :: fortran
2024-12-04 15:58:59 +01:00
subroutine set_bitmask_particl_as_input(input_bitmask)
2019-03-07 16:29:06 +01:00
set the generators_bitmask for the particles
2024-12-04 15:58:59 +01:00
as the input_bitmask
2019-03-07 16:29:06 +01:00
Needs:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`
2024-12-04 15:58:59 +01:00
* :c:data: `index_particl_bitmask`
2019-03-07 16:29:06 +01:00
* :c:data: `n_int`
Touches:
.. hlist ::
:columns: 3
* :c:data: `generators_bitmask`