| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(chain) | :: | this | ||||
| integer, | intent(in) | :: | k_vec(3) |
function dispersion_rel_chain_k(this, k_vec) result(disp) class(chain) :: this integer, intent(in) :: k_vec(3) real(dp) :: disp #ifdef DEBUG_ character(*), parameter :: this_routine = "dispersion_rel_chain" #endif ! for now only do it for periodic boundary conditions.. ASSERT(this%is_periodic()) ! and for now only for nearest neighbor interaction! ! although this is just the nearest neighbor band.. ! for next nearest and additional function should be implemented! ! i need to bring in the length of the chain and stuff.. ! and i should consider twisted boundary conditions and nearest ! neigbhors here too..? i think so.. disp = 2.0_dp * cos(2.0_dp * pi * (k_vec(1) + twisted_bc(1)) / this%length) end function dispersion_rel_chain_k