function dispersion_rel_tilted(this, k_vec) result(disp)
class(tilted) :: this
integer, intent(in) :: k_vec(3)
real(dp) :: disp
#ifdef DEBUG_
character(*), parameter :: this_routine = "dispersion_rel_tilted"
#endif
ASSERT(this%is_periodic())
! todo: i have to check if this also still holds for the
! rectangular tilted lattice!
! after some more consideration i believe this is the correct:
! although now i am not sure about the twist anymore... check that!
disp = 2.0_dp * (cos(pi * ((k_vec(1) + twisted_bc(1)) / this%length(1) &
+ (k_vec(2) + twisted_bc(2)) / this%length(2))) &
+ cos(pi * ((k_vec(1) + twisted_bc(1)) / this%length(1) &
- (k_vec(2) + twisted_bc(2)) / this%length(2))))
end function dispersion_rel_tilted