initialize_lu_table Subroutine

private subroutine initialize_lu_table(this)

Type Bound

lattice

Arguments

Type IntentOptional Attributes Name
class(lattice) :: this

Contents

Source Code


Source Code

    subroutine initialize_lu_table(this)
        implicit none
        class(lattice) :: this

        ! first, get the dimension of the lookup tables
        call this%get_lu_table_size()
        call this%init_basis_vecs()
        ! and allocate the lookup tables accordingly
        allocate(this%lu_table(this%kmin(1):this%kmax(1), this%kmin(2):this%kmax(2) &
                                , this%kmin(3):this%kmax(3)))
        allocate(this%bz_table(this%kmin(1):this%kmax(1), this%kmin(2):this%kmax(2), &
                                this%kmin(3):this%kmax(3)))
        ! write(stdout, *) "Lookup table size is ", 2 * (this%kmax(1) - this%kmin(1) + 1) &
            ! * (this%kmax(2) - this%kmin(2) + 1) * 8 / 1024, " kB"
        ! and fill thee lookup table with the bz vectors
        call this%fill_bz_table()
        ! now, fill the lookup table with the indices of the states
        call this%fill_lu_table()

    end subroutine initialize_lu_table