mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-10-04 15:15:58 +02:00
61 lines
1.6 KiB
Fortran
61 lines
1.6 KiB
Fortran
use bitmasks
|
|
|
|
integer, parameter :: hole_ = 1
|
|
integer, parameter :: particle_ = 2
|
|
integer, parameter :: hole2_ = 3
|
|
integer, parameter :: particle2_= 4
|
|
|
|
BEGIN_PROVIDER [ integer, N_single_exc_bitmasks ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! Number of single excitation bitmasks
|
|
END_DOC
|
|
N_single_exc_bitmasks = 1
|
|
!TODO : Read from input!
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ integer(bit_kind), single_exc_bitmask, (N_int, 2, N_single_exc_bitmasks) ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! single_exc_bitmask(:,1,i) is the bitmask for holes
|
|
!
|
|
! single_exc_bitmask(:,2,i) is the bitmask for particles
|
|
!
|
|
! for a given couple of hole/particle excitations i.
|
|
END_DOC
|
|
|
|
single_exc_bitmask(:,hole_,1) = HF_bitmask(:,1)
|
|
single_exc_bitmask(:,particle_,1) = not(HF_bitmask(:,2))
|
|
END_PROVIDER
|
|
|
|
|
|
BEGIN_PROVIDER [ integer, N_double_exc_bitmasks ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! Number of double excitation bitmasks
|
|
END_DOC
|
|
N_double_exc_bitmasks = 1
|
|
END_PROVIDER
|
|
|
|
BEGIN_PROVIDER [ integer(bit_kind), double_exc_bitmask, (N_int, 4, N_double_exc_bitmasks) ]
|
|
implicit none
|
|
BEGIN_DOC
|
|
! double_exc_bitmask(:,1,i) is the bitmask for holes of excitation 1
|
|
!
|
|
! double_exc_bitmask(:,2,i) is the bitmask for particles of excitation 1
|
|
!
|
|
! double_exc_bitmask(:,3,i) is the bitmask for holes of excitation 2
|
|
!
|
|
! double_exc_bitmask(:,4,i) is the bitmask for particles of excitation 2
|
|
!
|
|
! for a given couple of hole/particle excitations i.
|
|
END_DOC
|
|
|
|
double_exc_bitmask(:,hole_,1) = HF_bitmask(:,1)
|
|
double_exc_bitmask(:,particle_,1) = not(HF_bitmask(:,2))
|
|
double_exc_bitmask(:,hole2_,1) = HF_bitmask(:,1)
|
|
double_exc_bitmask(:,particle2_,1) = not(HF_bitmask(:,2))
|
|
|
|
END_PROVIDER
|
|
|