fill_bz_table Subroutine

private subroutine fill_bz_table(this)

Type Bound

lattice

Arguments

Type IntentOptional Attributes Name
class(lattice) :: this

Contents

Source Code


Source Code

    subroutine fill_bz_table(this)
        implicit none
        class(lattice) :: this
        integer :: kx, ky, kz, k(sdim)

        ! here, we store for a bunch of important k vectors, whether they are in
        ! the first BZ or not

        this%bz_table = .false.
        ! check all vectors in the [kmin,kmax] range
        do kx = this%kmin(1), this%kmax(1)
            do ky = this%kmin(2), this%kmax(2)
                do kz = this%kmin(3), this%kmax(3)
                    k = (/kx, ky, kz/)
                    ! write down if k is in the BZ
                    ! the check is done by looping over all sites
                    this%bz_table(k(1), k(2), k(3)) = this%inside_bz_explicit(k)
                end do
            end do
        end do

    end subroutine fill_bz_table