dispersion_rel_tilted Function

private function dispersion_rel_tilted(this, k_vec) result(disp)

Type Bound

tilted

Arguments

Type IntentOptional Attributes Name
class(tilted) :: this
integer, intent(in) :: k_vec(3)

Return Value real(kind=dp)


Contents

Source Code


Source Code

    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