Non-interacting band structure#

[1]:
import numpy as np
from quant_met import geometry, mean_field, plotting
[5]:
graphene_lattice = geometry.Graphene(lattice_constant=np.sqrt(3))
n = 10  # number of points across the whole k space path
band_path, band_path_plot, ticks, labels = graphene_lattice.generate_high_symmetry_path(
    number_of_points=n
)

print(graphene_lattice.bz_corners)
print(graphene_lattice.M)
print(band_path)

delta = np.array([0, 0, 0])

BZ_path_plot = plotting.scatter_into_bz(graphene_lattice.bz_corners, band_path)

egx_h = mean_field.EGXHamiltonian(
    hopping_gr=1,
    hopping_x=0.01,
    hopping_x_gr_a=0.1,
    lattice_constant=graphene_lattice.lattice_constant,
    chemical_potential=-2.5,
    hubbard_int_gr=1,
    hubbard_int_x=1,
)

band_structure = egx_h.calculate_bandstructure(
    band_path, overlaps=(np.array([0, 0, 1]), np.array([1, 0, 0]))
)
print(band_structure)
[[ 2.41839915  0.        ]
 [ 1.20919958  2.0943951 ]
 [-1.20919958  2.0943951 ]]
[1.81379936 1.04719755]
[[1.81379936 1.04719755]
 [1.20919958 0.6981317 ]
 [0.60459979 0.34906585]
 [0.         0.        ]
 [0.60459979 0.        ]
 [1.20919958 0.        ]
 [1.81379936 0.        ]
 [2.41839915 0.        ]
 [2.11609926 0.52359878]]
     band_0      wx_0    band_1          wx_1    band_2      wx_2
0  1.495110 -0.495287  2.519802  9.900836e-01  3.505089 -0.494797
1  0.765065 -0.498339  2.500000  9.966778e-01  4.234935 -0.498339
2 -0.147669 -0.499259  2.460057  9.985722e-01  5.147612 -0.499313
3 -0.501700 -0.499416  2.440067  9.988884e-01  5.501634 -0.499472
4 -0.233911 -0.499303  2.455419  9.986607e-01  5.233851 -0.499358
5  0.497489 -0.498737  2.490025  9.975060e-01  4.502486 -0.498769
6  1.495110 -0.495287  2.519802  9.900836e-01  3.505089 -0.494797
7  2.413881 -0.148340  2.500000  1.972152e-29  2.616119  0.148340
8  1.761369 -0.491558  2.524189  9.816025e-01  3.239083 -0.490044
../_images/examples_non-interacting_bandstructure_2_1.png
[3]:
fig = plotting.plot_bandstructure(
    bands=band_structure[["band_0", "band_1", "band_2"]].to_numpy().T,
    overlaps=band_structure[["wx_0", "wx_1", "wx_2"]].to_numpy().T,
    overlap_labels=[r"$w_{\mathrm{Gr}_1}$", r"$w_X$"],
    k_point_list=band_path_plot,
    labels=labels,
    ticks=ticks,
)
../_images/examples_non-interacting_bandstructure_3_0.png
[ ]: