2014-04-03 16:23:27 +02:00
|
|
|
==============
|
|
|
|
Bitmask Module
|
|
|
|
==============
|
|
|
|
|
2014-04-10 22:17:26 +02:00
|
|
|
The central part of this module is the ``bitmasks_module.f90`` file. It contains
|
|
|
|
the constants that will be used to define on which kind of integer the bitmasks
|
|
|
|
will be defined.
|
|
|
|
|
|
|
|
In the program, when an integer ``X`` is used to represent a bit string (like a determinant
|
2014-04-10 22:26:42 +02:00
|
|
|
for example), it should be defined as, for example:
|
2014-04-10 22:17:26 +02:00
|
|
|
|
|
|
|
.. code-block:: fortran
|
|
|
|
|
|
|
|
use bitmasks
|
|
|
|
integer(bit_kind) :: X
|
|
|
|
|
|
|
|
|
|
|
|
The ``bitmasks_routines.irp.f`` contains helper routines to manipulate bitmassk, like
|
|
|
|
transforming a bit string to a list of integers for example.
|
|
|
|
|
|
|
|
Assumptions
|
|
|
|
===========
|
|
|
|
|
|
|
|
.. Do not edit this section. It was auto-generated from the
|
2014-05-13 13:57:58 +02:00
|
|
|
.. NEEDED_MODULES file.
|
2014-04-10 22:17:26 +02:00
|
|
|
|
2014-04-17 23:50:51 +02:00
|
|
|
``bit_kind_shift``, ``bit_kind_size`` and ``bit_kind`` are coherent:
|
|
|
|
|
|
|
|
.. code_block:: fortran
|
2014-04-10 22:17:26 +02:00
|
|
|
|
|
|
|
2**bit_kind_shift = bit_kind_size
|
|
|
|
bit_kind = bit_kind_size / 8
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-03 16:23:27 +02:00
|
|
|
|
|
|
|
Needed Modules
|
2014-04-04 00:41:43 +02:00
|
|
|
==============
|
|
|
|
|
|
|
|
.. Do not edit this section. It was auto-generated from the
|
|
|
|
.. NEEDED_MODULES file.
|
2014-04-03 16:23:27 +02:00
|
|
|
|
2014-04-04 00:47:13 +02:00
|
|
|
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
|
|
|
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
|
|
|
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
|
|
|
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
|
|
|
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
2014-04-17 15:10:26 +02:00
|
|
|
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
2014-04-04 00:47:13 +02:00
|
|
|
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
2014-04-03 16:23:27 +02:00
|
|
|
|
2014-05-13 13:57:58 +02:00
|
|
|
Documentation
|
|
|
|
=============
|
|
|
|
|
|
|
|
.. Do not edit this section. It was auto-generated from the
|
|
|
|
.. NEEDED_MODULES file.
|
|
|
|
|
|
|
|
`full_ijkl_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L/BEGIN_PROVIDER [ integer(bit_kind), full_ijkl_bitmask, (N_int,4) ]/;"
|
|
|
|
>`_
|
|
|
|
Bitmask to include all possible MOs
|
|
|
|
|
|
|
|
`hf_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L/BEGIN_PROVIDER [ integer(bit_kind), HF_bitmask, (N_int,2)]/;"
|
|
|
|
>`_
|
|
|
|
Hartree Fock bit mask
|
|
|
|
|
|
|
|
`n_int <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L/BEGIN_PROVIDER [ integer, N_int ]/;"
|
|
|
|
>`_
|
|
|
|
Number of 64-bit integers needed to represent determinants as binary strings
|
|
|
|
|
|
|
|
`ref_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L/BEGIN_PROVIDER [ integer(bit_kind), ref_bitmask, (N_int,2)]/;"
|
|
|
|
>`_
|
|
|
|
Reference bit mask, used in Slater rules, chosen as Hartree-Fock bitmask
|
|
|
|
|
|
|
|
`bitstring_to_hexa <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L/subroutine bitstring_to_hexa( output, string, Nint )/;"
|
|
|
|
>`_
|
|
|
|
Transform a bit string to a string in hexadecimal format for printing
|
|
|
|
|
|
|
|
`bitstring_to_list <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L/subroutine bitstring_to_list( string, list, n_elements, Nint)/;"
|
|
|
|
>`_
|
|
|
|
Gives the inidices(+1) of the bits set to 1 in the bit string
|
|
|
|
|
|
|
|
`bitstring_to_str <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L/subroutine bitstring_to_str( output, string, Nint )/;"
|
|
|
|
>`_
|
|
|
|
Transform a bit string to a string for printing
|
|
|
|
|
|
|
|
`list_to_bitstring <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L/subroutine list_to_bitstring( string, list, n_elements, Nint)/;"
|
|
|
|
>`_
|
|
|
|
return the physical string "string(N_int,2)" from the array of occupations "list(N_int*bit_kind_size,2)
|
|
|
|
list
|
|
|
|
<== ipos ==>
|
|
|
|
|
|
|
|
|
v
|
|
|
|
string :|------------------------|-------------------------|------------------------|
|
|
|
|
<==== bit_kind_size ====> <==== bit_kind_size ====> <==== bit_kind_size ====>
|
|
|
|
{ iint } { iint } { iint }
|
|
|
|
|
|
|
|
|
|
|
|
|