subspace_in Derived Type

type, public :: subspace_in


Contents

Source Code


Components

Type Visibility Attributes Name Initial
logical, public :: tHF = .false.
logical, public :: tPops = .false.
logical, public :: tPopsCore = .false.
logical, public :: tPopsAuto = .false.
logical, public :: tPopsProportion = .false.
logical, public :: tRead = .false.
logical, public :: tDoubles = .false.
logical, public :: tTriples = .false.
logical, public :: tHFConn = .false.
logical, public :: tCAS = .false.
logical, public :: tRAS = .false.
logical, public :: tMP1 = .false.
logical, public :: tOptimised = .false.
logical, public :: tLowE = .false.
logical, public :: tAllConnCore = .false.
logical, public :: tFCI = .false.
logical, public :: tHeisenbergFCI = .false.
integer, public :: occ_cas
integer, public :: virt_cas
type(opt_space_data), public :: opt_data
type(ras_parameters), public :: ras
logical, public :: tLimitSpace = .false.
integer, public :: max_size = 0
integer, public :: npops = 0
real(kind=dp), public :: npops_proportion
logical, public :: tApproxSpace = .false.
integer, public :: nApproxSpace = 10
integer, public :: mp1_ndets = 0
character(len=255), public :: read_filename

Source Code

    type subspace_in
        ! Just the Hartree-Fock determinant.
        logical :: tHF = .false.
        ! Use the most populated states in CurrentDets.
        logical :: tPops = .false.
        ! This logical variable has been introduced to prevent inconsistency
        ! of POPS-CORE-... keywords.
        logical :: tPopsCore = .false.
        ! Automatically choosing 10% of the total initiator space, if this number
        ! is larger than 50000, then use npops = 50000
        logical :: tPopsAuto = .false.
        ! Use a given proportion of initiator determinants as core space.
        logical :: tPopsProportion = .false.
        ! Read states from a file.
        logical :: tRead = .false.
        ! Use the space of all single and double (+triple) excitations from the
        ! Hartree-Fock determinant (and also include the HF determinant).
        logical :: tDoubles = .false.
        logical :: tTriples = .false.
        ! Use all connections to the Hartree-Fock.
        logical :: tHFConn = .false.
        ! Use a CAS space.
        logical :: tCAS = .false.
        ! Use a RAS space.
        logical :: tRAS = .false.
        ! Use the determinants with the largest amplitudes in the MP1
        ! wave function.
        logical :: tMP1 = .false.
        ! Use the iterative approach described by Petruzielo et. al. (PRL 109, 230201).
        logical :: tOptimised = .false.
        ! Like the optimised space, but instead of diagonalising the space
        ! each iteration to find which states to keep, we keep the states
        ! with the lowest energies.
        logical :: tLowE = .false.
        ! Actually use the space of all connections to the chosen space
        logical :: tAllConnCore = .false.
        ! Use the entire FCI space.
        logical :: tFCI = .false.
        ! Use the entire FCI space in Heisenberg model calculations.
        logical :: tHeisenbergFCI = .false.

        ! When using a CAS deterministic space, these integers store the number of orbitals above and below the Fermi energy to
        ! include in the CAS active space (the occupied and virtual orbitals).
        integer :: occ_cas
        integer :: virt_cas

        ! Optimised space data for generating a semi-stohastic space.
        type(opt_space_data) :: opt_data

        ! Paremeters for RAS space calculations.
        type(ras_parameters) :: ras

        ! If this is true then set a limit on the maximum deterministic space size.
        logical :: tLimitSpace = .false.
        ! This is maximum number of elements in the deterministic space, if tLimitDetermSpace is true.
        integer :: max_size = 0
        ! The number of states to use from a POPSFILE for the core space.
        integer :: npops = 0
        ! This proportion is multiplied by the number of initiator determinants to obtain npops.
        real(dp) :: npops_proportion
        ! If true then the space generated from the pops-core option may be very
        ! slightly unoptimal, but should be very good, and sometimes exactly the
        ! same as when this logical is false. Only applies to the pops-* options.
        logical :: tApproxSpace = .false.
        ! if tApproxSpace is true, then nApproxSpace times target pops-core space is the size of the array
        ! kept on each processor, 1 =< nApproxSpace =< nProcessors. The larger nApproxSpace, the more
        ! memory is consumed and the slower (but more accurate) is the semi-stochastic initialisation
        ! (see subroutine generate_space_most_populated).
        integer :: nApproxSpace = 10
        ! When using the tMP1Core option, this specifies how many determinants to keep.
        integer :: mp1_ndets = 0

        character(255) :: read_filename
    end type subspace_in