kwant.wraparound.plot_2d_bands

Contents

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 by kwant.wraparound.wraparound. Note that this must be a finite system; so kwant.wraparound.wraparound should have been called with keep=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). Setting mask_brillouin_zone=True will cause the plot to be truncated outside of the first Brillouin zone.