Calculates the probability of picking three orbitals with total spin ms without symmetry @param[in] ms total spin of the picked orbitals @param[inout] pgen on call, the probability of picking the electrons, on return, the total probability
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ms | |||
real(kind=dp), | intent(inout) | :: | pgen |
pure subroutine calc_pgen_triple_target_nosym(ms, pgen)
integer, intent(in) :: ms
real(dp), intent(inout) :: pgen
if (ms == -3) then
pgen = pgen * same_spin_perm &
/ (nUnoccBeta * (nUnoccBeta - 1) * (nUnoccBeta - 2))
else if (ms == -1) then
pgen = pgen * opp_spin_perm &
/ (nUnoccBeta * (nUnoccBeta - 1) * nUnoccAlpha)
else if (ms == 1) then
pgen = pgen * opp_spin_perm &
/ (nUnoccBeta * nUnoccAlpha * (nUnoccAlpha - 1))
else
pgen = pgen * same_spin_perm &
/ (nUnoccAlpha * (nUnoccAlpha - 1) * (nUnoccAlpha - 2))
end if
end subroutine calc_pgen_triple_target_nosym