9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 19:43:32 +01:00
qp2/docs/source/modules/bitmask.rst

3490 lines
87 KiB
ReStructuredText
Raw Normal View History

2019-01-25 11:39:31 +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`.
Providers
---------
2019-01-25 14:54:22 +01:00
.. c:var:: act_bitmask
File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
Needs:
.. hlist::
:columns: 3
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :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`
* :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
.. c:var:: cas_bitmask
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: cas_bitmask (N_int,2,N_cas_bitmask)
Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference)
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`full_ijkl_bitmask`
* :c:data:`generators_bitmask_restart`
* :c:data:`hf_bitmask`
* :c:data:`mpi_master`
* :c:data:`n_cas_bitmask`
* :c:data:`n_generators_bitmask`
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :c:data:`closed_shell_ref_bitmask`
* :c:data:`psi_cas`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
.. 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
* :c:data:`cas_bitmask`
* :c:data:`n_int`
* :c:data:`ref_bitmask`
.. c:var:: core_bitmask
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
2019-01-25 11:39:31 +01:00
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
2019-01-25 14:54:22 +01:00
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :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`
* :c:data:`inact_virt_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`list_core_inact_act`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
2019-01-25 11:39:31 +01:00
* :c:data:`reunion_of_core_inact_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
.. 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`
Needed by:
.. hlist::
:columns: 3
* :c:data:`mo_two_e_integrals_in_map`
.. 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
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
2019-01-25 14:54:22 +01:00
.. c:var:: del_bitmask
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_class`
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +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`
* :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. c:var:: dim_list_act_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer :: dim_list_core_orb
integer :: dim_list_inact_orb
integer :: dim_list_virt_orb
integer :: dim_list_act_orb
integer :: dim_list_del_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
dimensions for the allocation of list_inact, list_virt, list_core and list_act
it is at least 1
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. c:var:: dim_list_core_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer :: dim_list_core_orb
integer :: dim_list_inact_orb
integer :: dim_list_virt_orb
integer :: dim_list_act_orb
integer :: dim_list_del_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
dimensions for the allocation of list_inact, list_virt, list_core and list_act
it is at least 1
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
Needed by:
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. hlist::
:columns: 3
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. c:var:: dim_list_del_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer :: dim_list_core_orb
integer :: dim_list_inact_orb
integer :: dim_list_virt_orb
integer :: dim_list_act_orb
integer :: dim_list_del_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
dimensions for the allocation of list_inact, list_virt, list_core and list_act
it is at least 1
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. c:var:: dim_list_inact_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer :: dim_list_core_orb
integer :: dim_list_inact_orb
integer :: dim_list_virt_orb
integer :: dim_list_act_orb
integer :: dim_list_del_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
dimensions for the allocation of list_inact, list_virt, list_core and list_act
it is at least 1
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. c:var:: dim_list_virt_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer :: dim_list_core_orb
integer :: dim_list_inact_orb
integer :: dim_list_virt_orb
integer :: dim_list_act_orb
integer :: dim_list_del_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
dimensions for the allocation of list_inact, list_virt, list_core and list_act
it is at least 1
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
Needs:
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. hlist::
:columns: 3
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
Needed by:
.. hlist::
:columns: 3
* :c:data:`list_inact`
.. 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_class`
* :c:data:`mo_num`
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :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:data:`generators_bitmask_restart`
.. 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
integer(bit_kind), allocatable :: generators_bitmask (N_int,2,6,N_generators_bitmask)
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:`mpi_master`
* :c:data:`n_generators_bitmask`
* :c:data:`n_int`
.. c:var:: generators_bitmask_restart
File : :file:`bitmask/bitmasks.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer(bit_kind), allocatable :: generators_bitmask_restart (N_int,2,6,N_generators_bitmask_restart)
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:`mpi_master`
* :c:data:`n_generators_bitmask`
* :c:data:`n_generators_bitmask_restart`
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
.. c:var:: hf_bitmask
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: hf_bitmask (N_int,2)
Hartree Fock bit mask
Needs:
.. hlist::
:columns: 3
* :c:data:`elec_alpha_num`
* :c:data:`elec_beta_num`
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :c:data:`degree_max_generators`
* :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`
.. c:var:: i_bitmask_gen
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer :: i_bitmask_gen
Current bitmask for the generators
.. c:var:: inact_bitmask
File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
2019-01-25 14:54:22 +01:00
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
2019-01-25 14:54:22 +01:00
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
2019-01-25 14:54:22 +01:00
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +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`
2019-01-25 11:39:31 +01:00
* :c:data:`inact_virt_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`list_core_inact_act`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
.. c:var:: 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
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
.. 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
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
2019-01-25 11:39:31 +01:00
integer, allocatable :: list_act_reverse (mo_num)
2019-01-25 14:54:22 +01:00
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
2019-01-25 11:39:31 +01:00
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`core_energy`
* :c:data:`core_energy_erf`
2019-01-25 11:39:31 +01:00
* :c:data:`core_fock_operator`
* :c:data:`core_fock_operator_erf`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo`
2019-01-25 14:54:22 +01:00
* :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
.. c:var:: list_act_reverse
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
2019-01-25 11:39:31 +01:00
integer, allocatable :: list_act_reverse (mo_num)
2019-01-25 14:54:22 +01:00
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
2019-01-25 11:39:31 +01:00
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`core_energy`
* :c:data:`core_energy_erf`
2019-01-25 11:39:31 +01:00
* :c:data:`core_fock_operator`
* :c:data:`core_fock_operator_erf`
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo`
2019-01-25 14:54:22 +01:00
* :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
.. c:var:: list_core
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
2019-01-25 11:39:31 +01:00
integer, allocatable :: list_core_reverse (mo_num)
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :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`
2019-01-25 14:54:22 +01:00
* :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. c:var:: list_core_inact_act
2019-01-25 11:39:31 +01:00
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_core_inact_act (n_core_inact_act_orb)
integer, allocatable :: list_core_inact_act_reverse (mo_num)
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
* :c:data:`n_int`
2019-01-25 14:54:22 +01:00
* :c:data:`reunion_of_core_inact_act_bitmask`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. c:var:: list_core_inact_act_reverse
2019-01-25 11:39:31 +01:00
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer, allocatable :: list_core_inact_act (n_core_inact_act_orb)
integer, allocatable :: list_core_inact_act_reverse (mo_num)
Needs:
.. hlist::
:columns: 3
* :c:data:`list_inact`
* :c:data:`mo_num`
* :c:data:`n_int`
* :c:data:`reunion_of_core_inact_act_bitmask`
2019-01-25 14:54:22 +01:00
.. c:var:: list_core_reverse
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
2019-01-25 14:54:22 +01:00
Needed by:
.. hlist::
:columns: 3
* :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`
* :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. c:var:: list_del
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
2019-01-25 14:54:22 +01:00
Needed by:
.. hlist::
:columns: 3
* :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`
* :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
.. c:var:: list_del_reverse
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
2019-01-25 11:39:31 +01:00
integer, allocatable :: list_core_reverse (mo_num)
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :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`
2019-01-25 14:54:22 +01:00
* :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
.. c:var:: list_inact
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
2019-01-25 11:39:31 +01:00
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
2019-01-25 11:39:31 +01:00
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
2019-01-25 14:54:22 +01:00
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +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`
* :c:data:`inact_virt_bitmask`
2019-01-25 11:39:31 +01:00
* :c:data:`list_core_inact_act`
2019-01-25 14:54:22 +01:00
* :c:data:`mo_two_e_integrals_in_map`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_two_e_integrals_vv_from_ao`
2019-01-25 14:54:22 +01:00
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
.. c:var:: list_inact_reverse
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
2019-01-25 11:39:31 +01:00
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
2019-01-25 11:39:31 +01:00
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
2019-01-25 14:54:22 +01:00
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +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`
* :c:data:`inact_virt_bitmask`
2019-01-25 11:39:31 +01:00
* :c:data:`list_core_inact_act`
2019-01-25 14:54:22 +01:00
* :c:data:`mo_two_e_integrals_in_map`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_two_e_integrals_vv_from_ao`
2019-01-25 14:54:22 +01:00
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
.. c:var:: list_virt
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
2019-01-25 11:39:31 +01:00
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
2019-01-25 11:39:31 +01:00
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
2019-01-25 14:54:22 +01:00
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +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`
* :c:data:`inact_virt_bitmask`
2019-01-25 11:39:31 +01:00
* :c:data:`list_core_inact_act`
2019-01-25 14:54:22 +01:00
* :c:data:`mo_two_e_integrals_in_map`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_two_e_integrals_vv_from_ao`
2019-01-25 14:54:22 +01:00
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
.. c:var:: list_virt_reverse
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
2019-01-25 11:39:31 +01:00
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
2019-01-25 11:39:31 +01:00
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
2019-01-25 14:54:22 +01:00
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_num`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +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`
* :c:data:`inact_virt_bitmask`
2019-01-25 11:39:31 +01:00
* :c:data:`list_core_inact_act`
2019-01-25 14:54:22 +01:00
* :c:data:`mo_two_e_integrals_in_map`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_two_e_integrals_vv_from_ao`
2019-01-25 14:54:22 +01:00
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`virt_bitmask_4`
2019-01-25 11:39:31 +01:00
.. c:var:: mpi_bit_kind
File : :file:`bitmask/mpi.irp.f`
.. code:: fortran
integer :: mpi_bit_kind
MPI bit kind type
.. c:var:: n_act_orb
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer :: n_core_orb
integer :: n_inact_orb
2019-01-25 11:39:31 +01:00
integer :: n_act_orb
2019-01-25 14:54:22 +01:00
integer :: n_virt_orb
integer :: n_del_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`mo_class`
* :c:data:`mo_num`
2019-01-25 11:39:31 +01:00
* :c:data:`mpi_master`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`core_energy`
* :c:data:`core_energy_erf`
2019-01-25 11:39:31 +01:00
* :c:data:`core_fock_operator`
* :c:data:`core_fock_operator_erf`
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo`
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`n_core_orb_allocate`
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f`
2019-01-25 11:39:31 +01:00
.. c:var:: n_cas_bitmask
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer :: n_cas_bitmask
Number of bitmasks for CAS
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mpi_master`
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :c:data:`psi_cas`
.. c:var:: n_core_inact_act_orb
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: reunion_of_core_inact_act_bitmask (N_int,2)
integer :: n_core_inact_act_orb
Reunion of the core, inactive and active bitmasks
Needs:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :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:: n_core_inact_orb
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer :: n_core_inact_orb
Needs:
.. hlist::
:columns: 3
* :c:data:`n_int`
* :c:data:`reunion_of_core_inact_bitmask`
.. c:var:: n_core_orb
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
integer :: n_core_orb
2019-01-25 14:54:22 +01:00
integer :: n_inact_orb
integer :: n_act_orb
integer :: n_virt_orb
integer :: n_del_orb
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`mo_class`
* :c:data:`mo_num`
2019-01-25 11:39:31 +01:00
* :c:data:`mpi_master`
Needed by:
.. hlist::
:columns: 3
* :c:data:`core_energy`
* :c:data:`core_energy_erf`
* :c:data:`core_fock_operator`
* :c:data:`core_fock_operator_erf`
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`eigenvectors_fock_matrix_mo`
* :c:data:`fock_matrix_mo`
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
* :c:data:`mo_two_e_integrals_vv_from_ao`
2019-01-25 11:39:31 +01:00
* :c:data:`n_core_orb_allocate`
2019-01-25 14:54:22 +01:00
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
2019-01-25 11:39:31 +01:00
* :c:data:`pt2_f`
.. c:var:: n_core_orb_allocate
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer :: n_core_orb_allocate
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
.. c:var:: n_del_orb
File : :file:`bitmask/core_inact_act_virt.irp.f`
.. code:: fortran
integer :: n_core_orb
integer :: n_inact_orb
integer :: n_act_orb
integer :: n_virt_orb
integer :: n_del_orb
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
Needs:
.. hlist::
:columns: 3
* :c:data:`mo_class`
* :c:data:`mo_num`
* :c:data:`mpi_master`
Needed by:
.. hlist::
:columns: 3
2019-01-25 11:39:31 +01:00
2019-01-25 14:54:22 +01:00
* :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:`list_inact`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`n_core_orb_allocate`
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
* :c:data:`pt2_f`
2019-01-25 11:39:31 +01:00
.. c:var:: n_generators_bitmask
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer :: n_generators_bitmask
Number of bitmasks for generators
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mpi_master`
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :c:data:`generators_bitmask`
* :c:data:`generators_bitmask_restart`
.. c:var:: n_generators_bitmask_restart
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer :: n_generators_bitmask_restart
Number of bitmasks for generators
Needs:
.. hlist::
:columns: 3
* :c:data:`ezfio_filename`
* :c:data:`mpi_master`
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :c:data:`generators_bitmask_restart`
.. c:var:: n_inact_orb
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer :: n_core_orb
2019-01-25 11:39:31 +01:00
integer :: n_inact_orb
2019-01-25 14:54:22 +01:00
integer :: n_act_orb
2019-01-25 11:39:31 +01:00
integer :: n_virt_orb
2019-01-25 14:54:22 +01:00
integer :: n_del_orb
2019-01-25 11:39:31 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
2019-01-25 14:54:22 +01:00
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`mo_class`
* :c:data:`mo_num`
2019-01-25 11:39:31 +01:00
* :c:data:`mpi_master`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :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`
2019-01-25 11:39:31 +01:00
* :c:data:`list_inact`
* :c:data:`mo_two_e_integrals_vv_from_ao`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb_allocate`
2019-01-25 11:39:31 +01:00
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
2019-01-25 14:54:22 +01:00
* :c:data:`pt2_f`
2019-01-25 11:39:31 +01:00
.. c:var:: n_inact_orb_allocate
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer :: n_inact_orb_allocate
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +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
* :c:data:`cas_bitmask`
* :c:data:`ci_electronic_energy`
* :c:data:`closed_shell_ref_bitmask`
* :c:data:`coef_hf_selector`
* :c:data:`core_inact_act_bitmask_4`
* :c:data:`degree_max_generators`
* :c:data:`det_to_occ_pattern`
* :c:data:`diagonal_h_matrix_on_psi_det`
* :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:`generators_bitmask_restart`
* :c:data:`h_apply_buffer_allocated`
* :c:data:`h_matrix_all_dets`
* :c:data:`h_matrix_cas`
* :c:data:`hf_bitmask`
* :c:data:`inact_virt_bitmask`
* :c:data:`list_core_inact_act`
* :c:data:`list_inact`
* :c:data:`max_degree_exc`
* :c:data:`mo_two_e_integrals_erf_in_map`
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`n_cas_bitmask`
* :c:data:`n_core_inact_orb`
* :c:data:`n_generators_bitmask`
* :c:data:`n_generators_bitmask_restart`
* :c:data:`one_e_dm_mo_alpha`
* :c:data:`psi_bilinear_matrix_values`
* :c:data:`psi_cas`
* :c:data:`psi_cas_sorted_bit`
* :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_det_sorted_gen`
* :c:data:`psi_energy`
* :c:data:`psi_energy_two_e`
* :c:data:`psi_non_cas`
* :c:data:`psi_non_cas_sorted_bit`
* :c:data:`psi_occ_pattern`
* :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`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_act_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :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`
* :c:data:`singles_beta_csc`
* :c:data:`singles_beta_csc_idx`
* :c:data:`unpaired_alpha_electrons`
* :c:data:`virt_bitmask_4`
.. c:var:: n_virt_orb
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer :: n_core_orb
2019-01-25 11:39:31 +01:00
integer :: n_inact_orb
2019-01-25 14:54:22 +01:00
integer :: n_act_orb
2019-01-25 11:39:31 +01:00
integer :: n_virt_orb
2019-01-25 14:54:22 +01:00
integer :: n_del_orb
2019-01-25 11:39:31 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
2019-01-25 14:54:22 +01:00
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`mo_class`
* :c:data:`mo_num`
2019-01-25 11:39:31 +01:00
* :c:data:`mpi_master`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :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`
2019-01-25 11:39:31 +01:00
* :c:data:`list_inact`
* :c:data:`mo_two_e_integrals_vv_from_ao`
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb_allocate`
2019-01-25 11:39:31 +01:00
* :c:data:`n_inact_orb_allocate`
* :c:data:`n_virt_orb_allocate`
2019-01-25 14:54:22 +01:00
* :c:data:`pt2_f`
2019-01-25 11:39:31 +01:00
.. c:var:: n_virt_orb_allocate
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer :: n_virt_orb_allocate
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +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`
.. c:var:: reunion_of_bitmask
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: reunion_of_bitmask (N_int,2)
Reunion of the inactive, active and virtual bitmasks
Needs:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
.. c:var:: reunion_of_cas_inact_bitmask
File : :file:`bitmask/bitmasks.irp.f`
.. code:: fortran
integer(bit_kind), allocatable :: reunion_of_cas_inact_bitmask (N_int,2)
Reunion of the inactive, active and virtual bitmasks
Needs:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
.. 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)
integer :: n_core_inact_act_orb
Reunion of the core, inactive and active bitmasks
Needs:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :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
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
* :c:data:`n_core_inact_orb`
* :c:data:`reunion_of_core_inact_act_bitmask`
.. 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
2019-01-25 14:54:22 +01:00
File : :file:`bitmask/core_inact_act_virt.irp.f`
2019-01-25 11:39:31 +01:00
.. code:: fortran
2019-01-25 14:54:22 +01:00
integer, allocatable :: list_inact (dim_list_inact_orb)
integer, allocatable :: list_virt (dim_list_virt_orb)
integer, allocatable :: list_inact_reverse (mo_num)
integer, allocatable :: list_virt_reverse (mo_num)
integer, allocatable :: list_del_reverse (mo_num)
integer, allocatable :: list_del (mo_num)
integer, allocatable :: list_core (dim_list_core_orb)
integer, allocatable :: list_core_reverse (mo_num)
integer, allocatable :: list_act (dim_list_act_orb)
integer, allocatable :: list_act_reverse (mo_num)
integer(bit_kind), allocatable :: core_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
integer(bit_kind), allocatable :: inact_bitmask (N_int,2)
2019-01-25 14:54:22 +01:00
integer(bit_kind), allocatable :: act_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
integer(bit_kind), allocatable :: virt_bitmask (N_int,2)
2019-01-25 14:54:22 +01:00
integer(bit_kind), allocatable :: del_bitmask (N_int,2)
2019-01-25 11:39:31 +01:00
inact_bitmask : Bitmask of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
n_inact_orb : Number of inactive orbitals
virt_bitmask : Bitmaks of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
n_virt_orb : Number of virtual orbitals
2019-01-25 14:54:22 +01:00
list_inact : List of the inactive orbitals which are supposed to be doubly excited
in post CAS methods
list_virt : List of vritual orbitals which are supposed to be recieve electrons
in post CAS methods
list_inact_reverse : reverse list of inactive orbitals
list_inact_reverse(i) = 0 ::> not an inactive
list_inact_reverse(i) = k ::> IS the kth inactive
list_virt_reverse : reverse list of virtual orbitals
list_virt_reverse(i) = 0 ::> not an virtual
list_virt_reverse(i) = k ::> IS the kth virtual
list_act(i) = index of the ith active orbital
list_act_reverse : reverse list of active orbitals
list_act_reverse(i) = 0 ::> not an active
list_act_reverse(i) = k ::> IS the kth active orbital
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`dim_list_core_orb`
* :c:data:`mo_class`
* :c:data:`mo_num`
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Needed by:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +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`
2019-01-25 11:39:31 +01:00
* :c:data:`inact_virt_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`list_core_inact_act`
2019-01-25 11:39:31 +01:00
* :c:data:`mo_two_e_integrals_in_map`
* :c:data:`mo_two_e_integrals_vv_from_ao`
* :c:data:`reunion_of_bitmask`
* :c:data:`reunion_of_cas_inact_bitmask`
* :c:data:`reunion_of_core_inact_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
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
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
* :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)
Gives the inidices(+1) of the bits set to 1 in the bit string
Called by:
.. hlist::
:columns: 3
* :c:func:`add_integrals_to_map`
* :c:func:`add_integrals_to_map_erf`
* :c:func:`add_integrals_to_map_no_exit_34`
* :c:func:`add_integrals_to_map_three_indices`
* :c:func:`create_microlist`
* :c:func:`example_bitmask`
* :c:func:`getmobiles`
* :c:data:`list_core_inact_act`
* :c:data:`ref_bitmask_energy`
.. 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`
* :c:func:`add_integrals_to_map_erf`
* :c:func:`add_integrals_to_map_three_indices`
* :c:func:`example_bitmask`
* :c:func:`print_det`
* :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`
.. 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_mono_or_exchange_verbose`
* :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`
.. c:function:: example_bitmask:
File : :file:`bitmask/example.irp.f`
2019-01-25 14:54:22 +01:00
.. code:: fortran
subroutine example_bitmask
2019-01-25 11:39:31 +01:00
subroutine that illustrates the main features available in bitmask
Needs:
.. hlist::
:columns: 3
2019-01-25 14:54:22 +01:00
* :c:data:`n_core_orb`
2019-01-25 11:39:31 +01:00
* :c:data:`list_inact`
* :c:data:`n_int`
2019-01-25 14:54:22 +01:00
* :c:data:`mo_num`
2019-01-25 11:39:31 +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`
.. c:function:: initialize_bitmask_to_restart_ones:
File : :file:`bitmask/modify_bitmasks.irp.f`
2019-01-25 14:54:22 +01:00
.. code:: fortran
subroutine initialize_bitmask_to_restart_ones
2019-01-25 11:39:31 +01:00
Initialization of the generators_bitmask to the restart bitmask
Needs:
.. hlist::
:columns: 3
* :c:data:`generators_bitmask_restart`
* :c:data:`n_generators_bitmask`
* :c:data:`generators_bitmask`
* :c:data:`n_int`
.. 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
this is calculated using the CAS_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:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
.. 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
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
.. 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
* :c:data:`hf_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +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:`n_generators_bitmask`
* :c:data:`generators_bitmask`
* :c:data:`n_int`
* :c:data:`index_holes_bitmask`
.. 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:`n_generators_bitmask`
* :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:`index_particl_bitmask`
* :c:data:`n_generators_bitmask`
* :c:data:`generators_bitmask`
* :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
Needs:
.. hlist::
:columns: 3
* :c:data:`cas_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`n_int`
.. 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
* :c:data:`cas_bitmask`
* :c:data:`reunion_of_core_inact_bitmask`
* :c:data:`n_int`
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
* :c:data:`cas_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
.. 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
* :c:data:`cas_bitmask`
2019-01-25 14:54:22 +01:00
* :c:data:`list_inact`
2019-01-25 11:39:31 +01:00
* :c:data:`n_int`
Calls:
.. hlist::
:columns: 3
* :c:func:`debug_det`
.. 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_holes`
* :c:func:`print_generators_bitmasks_holes_for_one_generator`
* :c:func:`print_generators_bitmasks_particles`
* :c:func:`print_generators_bitmasks_particles_for_one_generator`
Calls:
.. hlist::
:columns: 3
* :c:func:`bitstring_to_str`
.. c:function:: print_generators_bitmasks_holes:
File : :file:`bitmask/modify_bitmasks.irp.f`
2019-01-25 14:54:22 +01:00
.. code:: fortran
subroutine print_generators_bitmasks_holes
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
* :c:data:`generators_bitmask`
* :c:data:`n_int`
* :c:data:`index_holes_bitmask`
Calls:
.. hlist::
:columns: 3
* :c:func:`print_det`
.. c:function:: print_generators_bitmasks_holes_for_one_generator:
File : :file:`bitmask/modify_bitmasks.irp.f`
.. code:: fortran
subroutine print_generators_bitmasks_holes_for_one_generator(i_gen)
Needs:
.. hlist::
:columns: 3
* :c:data:`generators_bitmask`
* :c:data:`n_int`
* :c:data:`index_holes_bitmask`
Calls:
.. hlist::
:columns: 3
* :c:func:`print_det`
.. c:function:: print_generators_bitmasks_particles:
File : :file:`bitmask/modify_bitmasks.irp.f`
2019-01-25 14:54:22 +01:00
.. code:: fortran
subroutine print_generators_bitmasks_particles
2019-01-25 11:39:31 +01:00
Needs:
.. hlist::
:columns: 3
* :c:data:`index_particl_bitmask`
* :c:data:`generators_bitmask`
* :c:data:`n_int`
Calls:
.. hlist::
:columns: 3
* :c:func:`print_det`
.. c:function:: print_generators_bitmasks_particles_for_one_generator:
File : :file:`bitmask/modify_bitmasks.irp.f`
.. code:: fortran
subroutine print_generators_bitmasks_particles_for_one_generator(i_gen)
Needs:
.. hlist::
:columns: 3
* :c:data:`index_particl_bitmask`
* :c:data:`generators_bitmask`
* :c:data:`n_int`
Calls:
.. hlist::
:columns: 3
* :c:func:`print_det`
.. c:function:: print_spindet:
File : :file:`bitmask/bitmasks_routines.irp.f`
.. code:: fortran
subroutine print_spindet(string,Nint)
Subroutine to print the content of a determinant using the '+-' notation
Called by:
.. hlist::
:columns: 3
* :c:func:`debug_spindet`
Calls:
.. hlist::
:columns: 3
* :c:func:`bitstring_to_str`
.. 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`
.. c:function:: set_bitmask_hole_as_input:
File : :file:`bitmask/modify_bitmasks.irp.f`
.. code:: fortran
subroutine set_bitmask_hole_as_input(input_bimask)
set the generators_bitmask for the holes
as the input_bimask
Needs:
.. hlist::
:columns: 3
* :c:data:`n_generators_bitmask`
* :c:data:`generators_bitmask`
* :c:data:`n_int`
* :c:data:`index_holes_bitmask`
Touches:
.. hlist::
:columns: 3
* :c:data:`generators_bitmask`
.. c:function:: set_bitmask_particl_as_input:
File : :file:`bitmask/modify_bitmasks.irp.f`
.. code:: fortran
subroutine set_bitmask_particl_as_input(input_bimask)
set the generators_bitmask for the particles
as the input_bimask
Needs:
.. hlist::
:columns: 3
* :c:data:`index_particl_bitmask`
* :c:data:`n_generators_bitmask`
* :c:data:`generators_bitmask`
* :c:data:`n_int`
Touches:
.. hlist::
:columns: 3
* :c:data:`generators_bitmask`