rdm_definitions_t Derived Type

type, public :: rdm_definitions_t


Contents

Source Code


Components

Type Visibility Attributes Name Initial
integer, public :: nrdms = 0
integer, public :: nrdms_standard = 0
integer, public :: nrdms_transition = 0
integer, public, allocatable :: state_labels(:,:)
integer, public, allocatable :: sim_labels(:,:)
integer, public, allocatable :: repeat_label(:)
integer, public, allocatable :: nrdms_per_sim(:)
integer, public, allocatable :: sim_pairs(:,:)
integer, public, allocatable :: rdm_labels(:,:)
character(len=255), public :: output_file_prefix

Source Code

    type rdm_definitions_t
        ! The total number of RDMs being calculated.
        ! Equal to nrdms_standard + nrdms_transition.
        integer :: nrdms = 0
        ! The number of 'standard' RDMs (i.e. non-transition RDMs) being
        ! calculated.
        integer :: nrdms_standard = 0
        ! The number of transition RDMs being calculated.
        integer :: nrdms_transition = 0

        ! state_labels(:,j) will store the labels of the *actual* wave functions
        ! (i.e., usually which excited state it is) contributing to the j'th RDM.
        integer, allocatable :: state_labels(:, :) ! (2, nrdms)
        ! sim_labels(:,j) will store the labels of the *FCIQMC* simulations
        ! (i.e. the 'replica' labels) which will be used to sample the j'th RDM
        ! being calculated.
        integer, allocatable :: sim_labels(:, :) ! (2, nrdms)

        ! For transition RDMs, with 2 replicas for each state, there will be 2
        ! copies of each transition RDM. This array simply specifies which of
        ! the 2 each RDM is - the first or second 'repeat'.
        integer, allocatable :: repeat_label(:) ! (nrdms)
        ! nrdms_per_sim(j) holds the number of different RDMS to which
        ! the FCIQMC simulation with label j contributes to.
        integer, allocatable :: nrdms_per_sim(:) ! (lenof_sign)
        ! sim_pairs(:,j) holds the list of the FCIQMC simulations labels
        ! which are paired with simulation j in contributing to RDMs.
        ! Elements which are not needed (due to a simulation not
        ! contributing to all RDMs) are set to 0.
        integer, allocatable :: sim_pairs(:, :) ! (nrdms, lenof_sign)
        ! rdm_labels(:,j) holds the list of RDM labels which simulation j
        ! contributes to. Elements which are not needed (due a simulation not
        ! contributing to all RDMs) are set to 0.
        integer, allocatable :: rdm_labels(:, :) ! (nrdms, lenof_sign)
        ! prefix for the names of the files to output to
        character(255) :: output_file_prefix
    end type rdm_definitions_t