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