gasci_util Module

This module contains functions for GAS that are not bound to a specific GAS excitation generator.



Contents


Variables

Type Visibility Attributes Name Initial
logical, public :: t_output_GAS_sizes = .false.

Interfaces

public interface get_cumulative_list

  • private function get_cumulative_list_Excite_1_t(det_I, incomplete_exc, possible_holes) result(cSum)

    @brief Build up a cumulative list of matrix elements.

    @details Calculate the matrix elements for the possible excitations from det_I to the possible holes using the incomplete defined excitation.

    @param[in] det_I, Reference determinant in “nI-format”. @param[in] incomplete_exc, An excitation where the last target is unknown. @param[in] possible_holes, Possible holes for the last target.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: det_I(:)
    type(Excite_1_t), intent(in) :: incomplete_exc
    integer, intent(in) :: possible_holes(:)

    Return Value real(kind=dp), (size(possible_holes))

  • private function get_cumulative_list_Excite_2_t(det_I, incomplete_exc, possible_holes) result(cSum)

    @brief Build up a cumulative list of matrix elements.

    @details Calculate the matrix elements for the possible excitations from det_I to the possible holes using the incomplete defined excitation.

    @param[in] det_I, Reference determinant in “nI-format”. @param[in] incomplete_exc, An excitation where the last target is unknown. @param[in] possible_holes, Possible holes for the last target.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: det_I(:)
    type(Excite_2_t), intent(in) :: incomplete_exc
    integer, intent(in) :: possible_holes(:)

    Return Value real(kind=dp), (size(possible_holes))


Functions

public pure function get_available_singles(GAS_spec, det_I) result(singles_exc_list)

@brief Get all single excitated determinants from det_I that are allowed under GAS constraints.

Arguments

Type IntentOptional Attributes Name
class(GASSpec_t), intent(in) :: GAS_spec
integer, intent(in) :: det_I(:)

Return Value integer, allocatable, (:,:)

Dimension is (nEl, n_configurations)

public pure function get_available_doubles(GAS_spec, det_I) result(doubles_exc_list)

@brief Get all double excitated determinants from det_I that are allowed under GAS constraints.

Arguments

Type IntentOptional Attributes Name
class(GASSpec_t), intent(in) :: GAS_spec
integer, intent(in) :: det_I(:)

Return Value integer, allocatable, (:,:)

private function get_cumulative_list_Excite_1_t(det_I, incomplete_exc, possible_holes) result(cSum)

@brief Build up a cumulative list of matrix elements.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: det_I(:)
type(Excite_1_t), intent(in) :: incomplete_exc
integer, intent(in) :: possible_holes(:)

Return Value real(kind=dp), (size(possible_holes))

private function get_cumulative_list_Excite_2_t(det_I, incomplete_exc, possible_holes) result(cSum)

@brief Build up a cumulative list of matrix elements.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: det_I(:)
type(Excite_2_t), intent(in) :: incomplete_exc
integer, intent(in) :: possible_holes(:)

Return Value real(kind=dp), (size(possible_holes))

private pure function get_alpha_supergroups(sg, n_orbs, S_z) result(sg_alpha)

Return the possible supergroups/distributions for alpha electrons.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: sg(:)

The overall supergroup

integer, intent(in) :: n_orbs(size(sg))

The number of spatial orbitals per GAS space

type(SpinProj_t), intent(in) :: S_z

The Spin projection

Return Value integer, allocatable, (:,:)

All possible distributions of alpha electrons among the GAS spaces.

public elemental function get_n_SDs(GAS_spec, N, S_z) result(n_SDs)

Return the number of Slater-determinants. These are the number of alpha/beta electrons and the number of spatial orbitals per GAS space

Arguments

Type IntentOptional Attributes Name
class(GASSpec_t), intent(in) :: GAS_spec

GAS specification.

integer, intent(in) :: N

The number of particles

type(SpinProj_t), intent(in) :: S_z

Spin projection

Return Value integer(kind=int64)


Subroutines

public subroutine gen_all_excits(GAS_spec, nI, n_excits, det_list, ic)

@brief Get all excitated determinants from det_I that are allowed under GAS constraints.

Read more…

Arguments

Type IntentOptional Attributes Name
class(GASSpec_t), intent(in) :: GAS_spec
integer, intent(in) :: nI(:)
integer, intent(out) :: n_excits
integer(kind=n_int), intent(out), allocatable :: det_list(:,:)
integer, intent(in), optional :: ic

public subroutine draw_from_cum_list(c_sum, idx, pgen)

@brief Draw from a cumulative list.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: c_sum(:)
integer, intent(out) :: idx
real(kind=dp), intent(out) :: pgen

public subroutine write_GAS_info(GAS_spec, N, S_z, iunit)

Write info about the GAS constraints to iunit

Read more…

Arguments

Type IntentOptional Attributes Name
class(GASSpec_t), intent(in) :: GAS_spec

GAS constraints.

integer, intent(in) :: N

The particle number.

type(SpinProj_t), intent(in) :: S_z

The total spin projection.

integer, intent(in) :: iunit