function get_helement_k_space_hub_ex_mat(nI, ic, ex, tpar) result(hel)
integer, intent(in) :: nI(nel), ic, ex(2, ic)
logical, intent(in) :: tpar
HElement_t(dp) :: hel
!todo: if 2-body-transcorrelation, we can have triple excitations now..
! fix that here.. (and also in a lot of other parts in the code..)
if (ic == 0) then
! the diagonal is just the sum of the occupied one-particle
! basis states
hel = get_diag_helement_k_sp_hub(nI)
else if (ic == 2) then
hel = get_offdiag_helement_k_sp_hub(nI, ex, tpar)
else if (ic == 3 .and. t_trans_corr_2body) then
hel = get_3_body_helement_ks_hub(ex, tpar)
else
hel = h_cast(0.0_dp)
end if
end function get_helement_k_space_hub_ex_mat