9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-10-30 10:18:07 +01:00
qp2/src/bitmask
Kevin Gasperich b593352c0f minor fix
2023-06-28 18:34:34 -05:00
..
bitmask_cas_routines.irp.f removed generators bitmaks, and casscf with not continuous orbital windows is working 2019-10-24 19:02:42 +02:00
bitmasks_module.f90 Initial commit 2019-01-25 11:39:31 +01:00
bitmasks_ormas.irp.f minor fix 2023-06-28 18:34:34 -05:00
bitmasks_routines.irp.f moved a subroutine from determinant to bitmask 2021-12-17 18:15:47 +01:00
bitmasks.ezfio_config removed generators bitmaks, and casscf with not continuous orbital windows is working 2019-10-24 19:02:42 +02:00
bitmasks.irp.f Fix bug with non-continuous active MOs and deleted 2021-06-01 11:33:39 +02:00
core_inact_act_virt.irp.f fixed a bug in two_rdm, added the possibility to Write/Read the all_states active 2 rdm 2020-04-02 14:22:01 +02:00
example.irp.f Initial commit 2019-01-25 11:39:31 +01:00
EZFIO.cfg ormas bitmasks 2023-06-28 18:23:10 -05:00
find_hole.irp.f Initial commit 2019-01-25 11:39:31 +01:00
modify_bitmasks.irp.f added some stuffs for foboscf 2021-04-08 20:37:17 +02:00
mpi.irp.f Initial commit 2019-01-25 11:39:31 +01:00
NEED Initial commit 2019-01-25 11:39:31 +01:00
README.rst Initial commit 2019-01-25 11:39:31 +01:00
track_orb.irp.f Added imaginary EZFIO arrays for one-e 2019-12-02 18:18:30 +01:00

==============
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`.