When I plot the band structure of the Lieb lattice, which has the Hamiltonian given in this code, I get a scrambled plot in the output. I've tried the exact same procedure with many different lattices (square, graphene) and I get the right output but somehow Mathematica is not liking this Hamiltonian in particular.
t = 0.1; (*hopping potential*)
h = {{0, -t (1 + E^(-I*ky)), 0}, {0, 0, -t (1 + E^(I*kx))}, {0, 0,
0}}; (*Defining part of the Hamiltonian*)
h = h + h\[ConjugateTranspose]; (*Making Hamiltonian Hermitian*)
h // MatrixForm (*Viewing Hamiltonian as a matrix*)
Plot3D[Eigenvalues[
h], {kx, -π, π}, {ky, -π, π}] (*Plotting \Eigenvalues of Hamiltonian with wavenumber to obtain bandstructure*)

Also, please remember to accept the answer, if any, that solves your problem, [by clicking the checkmark sign](http://tinyurl.com/4srwe26
– Dunlop Apr 05 '20 at 15:06EvaluateorSortthe eigenvalues in the argument ofPlot3D- for some reason,Plot3Dalways "jumps" between the three different bands otherwise. So eitherPlot3D[Evaluate@Eigenvalues[h],...]orPlot3D[Sort@Eigenvalues[h],...]should work – Lukas Lang Apr 05 '20 at 15:25