10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-10-19 22:41:48 +02:00
quantum_package/src/bitmask
2018-12-28 19:12:53 +01:00
..
.gitignore Renaming in lowercase 2018-12-18 16:11:25 +01:00
bitmask_cas_routines.irp.f Renaming in lowercase 2018-12-18 16:11:25 +01:00
bitmasks_module.f90 Renaming in lowercase 2018-12-18 16:11:25 +01:00
bitmasks_routines.irp.f added density_for_dft, dft_keywords and data_energy_and_density 2018-12-18 19:56:00 +01:00
bitmasks.ezfio_config Renaming in lowercase 2018-12-18 16:11:25 +01:00
bitmasks.irp.f Removed uppercases in filenames 2018-12-18 16:52:15 +01:00
example.irp.f added density_for_dft, dft_keywords and data_energy_and_density 2018-12-18 19:56:00 +01:00
find_hole.irp.f Renaming in lowercase 2018-12-18 16:11:25 +01:00
modify_bitmasks.irp.f Renaming in lowercase 2018-12-18 16:11:25 +01:00
mpi.irp.f Renaming in lowercase 2018-12-18 16:11:25 +01:00
NEED Renaming in lowercase 2018-12-18 16:11:25 +01:00
README.rst README 2018-12-28 19:12:53 +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`.