UniformParticles_t Derived Type

type, public, extends(ParticleSelector_t) :: UniformParticles_t


Contents


Type-Bound Procedures

procedure, public :: draw => draw_UniformParticles_t

  • private subroutine draw_UniformParticles_t(this, nI, ilutI, i_sg, elecs, srcs, p)

    Arguments

    Type IntentOptional Attributes Name
    class(UniformParticles_t), intent(in) :: this
    integer, intent(in) :: nI(nEl)

    The determinant in nI-format and the supergroup index

    integer(kind=n_int), intent(in) :: ilutI(0:nIfD)

    The determinant in bitmask format

    integer, intent(in) :: i_sg

    The determinant in nI-format and the supergroup index

    integer, intent(out) :: elecs(2)

    The chosen particles and their index in nI. It is guaranteed that scrs(1) < srcs(2).

    integer, intent(out) :: srcs(2)

    The chosen particles and their index in nI. It is guaranteed that scrs(1) < srcs(2).

    real(kind=dp), intent(out) :: p

    The probability of drawing . This is the probability of drawing two particles from a given determinant regardless of order.

procedure, public :: get_pgen => get_pgen_UniformParticles_t

  • private pure function get_pgen_UniformParticles_t(this, nI, i_sg, I, J) result(p)

    Calculates

    This is the probability of drawing two particles from a given determinant regardless of order.

    Note that the unordered probability is given by the ordered probability as: In addition we have so we have to actually calculate the probability of drawing two given particles in different order.

    Arguments

    Type IntentOptional Attributes Name
    class(UniformParticles_t), intent(in) :: this
    integer, intent(in) :: nI(nEl)

    The determinant in nI-format and the supergroup index

    integer, intent(in) :: i_sg

    The determinant in nI-format and the supergroup index

    integer, intent(in) :: I

    The particles.

    integer, intent(in) :: J

    The particles.

    Return Value real(kind=dp)

procedure, public :: finalize => finalize_UniformParticles_t