kwant.wraparound.plot_2d_bands#
- kwant.wraparound.plot_2d_bands(syst, k_x=31, k_y=31, params=None, mask_brillouin_zone=False, extend_bbox=0, file=None, show=True, dpi=None, fig_size=None, ax=None)[source]#
Plot 2D band structure of a wrapped around system.
This function is primarily useful for systems that have translational symmetry vectors that are non-orthogonal (e.g. graphene). This function will properly plot the band structure in an orthonormal basis in k-space, as opposed to in the basis of reciprocal lattice vectors (which would produce a “skewed” Brillouin zone).
If your system has orthogonal lattice vectors, you are probably better off using
kwant.plotter.spectrum
.- Parameters:
syst (
kwant.system.FiniteSystem
) – A 2D system that was finalized from a Builder produced bykwant.wraparound.wraparound
. Note that this must be a finite system; sokwant.wraparound.wraparound
should have been called withkeep=None
.k_x (int or sequence of float, default: 31) – Either a number of sampling points, or a sequence of points at which the band structure is to be evaluated, in units of inverse length.
k_y (int or sequence of float, default: 31) – Either a number of sampling points, or a sequence of points at which the band structure is to be evaluated, in units of inverse length.
params (dict, optional) – Dictionary of parameter names and their values, not including the momentum parameters.
mask_brillouin_zone (bool, default: False) – If True, then the band structure will only be plotted over the first Brillouin zone. By default the band structure is plotted over a rectangular bounding box that contains the Brillouin zone.
extend_bbox (float, default: 0) – Amount by which to extend the region over which the band structure is plotted, expressed as a proportion of the Brillouin zone bounding box length. i.e.
extend_bbox=0.1
will extend the region by 10% (in all directions).file (string or file object, optional) – The output file. If None, output will be shown instead.
show (bool, default: False) – Whether
matplotlib.pyplot.show()
is to be called, and the output is to be shown immediately. Defaults to True.dpi (float, optional) – Number of pixels per inch. If not set the
matplotlib
default is used.fig_size (tuple, optional) – Figure size (width, height) in inches. If not set, the default
matplotlib
value is used.ax (
matplotlib.axes.Axes
instance, optional) – If ax is not None, no new figure is created, but the plot is done within the existing Axes ax. in this case, file, show, dpi and fig_size are ignored.
- Returns:
fig – A figure with the output if ax is not set, else None.
- Return type:
matplotlib figure
Notes
This function produces plots where the units of momentum are inverse length. This is contrary to
kwant.plotter.bands
, where the units of momentum are inverse lattice constant.If the lattice vectors for the symmetry of
syst
are not orthogonal, then part of the plotted band structure will be outside the first Brillouin zone (inside the bounding box of the brillouin zone). Settingmask_brillouin_zone=True
will cause the plot to be truncated outside of the first Brillouin zone.See also