get_alpha_supergroups Function

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

Return the possible supergroups/distributions for alpha electrons.

If sg_alpha and sg_beta are the distributions of alpha/beta electrons among the GAS spaces. Then we have sg(:) = sg_alpha(:) + sg_beta(:). We want to generate all possible sg_alpha such that The GAS constraints are still fullfilled and the total spin projection is maintained. (sum(sg_alpha) + sum(sg_beta) == 2*S_z)

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.


Contents