init_tmat_kspace Subroutine

public subroutine init_tmat_kspace(in_lat)

Arguments

Type IntentOptional Attributes Name
class(lattice), optional :: in_lat

Contents

Source Code


Source Code

    subroutine init_tmat_kspace(in_lat)
        ! similar to the real-space tmat setup also do this here based on
        ! the inputted lattice!
        class(lattice), optional :: in_lat
        character(*), parameter :: this_routine = "init_tmat_kspace"

        integer :: i

        if (present(in_lat)) then
            if (associated(tmat2d)) deallocate(tmat2d)

            allocate(tmat2d(nbasis, nbasis))
            tmat2d = 0.0_dp

            do i = 1, in_lat%get_nsites()
                tmat2d(2 * i - 1, 2 * i - 1) = bhub * in_lat%dispersion_rel_orb(i)
                tmat2d(2 * i, 2 * i) = bhub * in_lat%dispersion_rel_orb(i)
            end do

        else
            call Stop_All(this_routine, "not yet implemented!")
        end if

    end subroutine init_tmat_kspace