SimpleBZ

Inheritance Diagram

Inheritance diagram of tenpy.models.lattice.SimpleBZ

Methods

SimpleBZ.__init__(vertices, basis, dim)

SimpleBZ.contains_points(points)

Checks whether given points lie inside the 1st Brillouin Zone.

SimpleBZ.from_recip_basis_vectors(...)

SimpleBZ.lagrange_lattice_reduction(basis)

Short implementation of Lagrange's algorithm for 2D lattice reduction.

SimpleBZ.order_vertices(vertices)

SimpleBZ.plot_brillouin_zone(*args, **kwargs)

Plot the brillouin zone of the lattice.

SimpleBZ.reduce_points(points)

Bring a set of points into 1st Brillouin Zone.

Class Attributes and Properties

SimpleBZ.area

class tenpy.models.lattice.SimpleBZ(vertices, basis, dim: int)[source]

Bases: object

Helper class to provide an interface for the Brillouin Zone of a given lattice.

The Brillouin Zone is the Wigner-Seitz Cell of the reciprocal lattice. For a given lattice with basis vectors \(a_i\), the reciprocal lattice is generated by the reciprocal basis vectors \(b_i\), which obey \(a_i b_j = 2 \pi \delta_{i j}\).

Parameters:
  • vertices (array_like) – a list of the vertices of the 1st BZ with shape (N, d) where d is the dimension and N the number of vertices.

  • basis (array_like) – the reciprocal basis of the real space lattice, i.e. the basis in reciprocal space

  • dim (int) – dimension of the Brillouin Zone

contains_points(points) ndarray[source]

Checks whether given points lie inside the 1st Brillouin Zone.

Parameters:

points (array_like) – points of shape (…, 2) for 2D or shape(…) for 1D that will be checked

Returns:

boolean array of shape points.shape[:-1] if 2D or points.shape if 1D, indicating whether the corresponding point in points is contained in the Brillouin Zone

Return type:

ndarray

reduce_points(points)[source]

Bring a set of points into 1st Brillouin Zone.

This is done by applying multiples of the reciprocal basis vectors, for points that lie outside the 1st Brillouin Zone.

Parameters:

points (array_like) – points to reduce given in the shape (…, 2) for 2D or (…) for 1D

Returns:

reduced_points – of shape points.shape the array of the points now reduced to the 1st BZ

Return type:

ndarray

plot_brillouin_zone(*args, **kwargs)[source]

Plot the brillouin zone of the lattice.

See _plot_brillouin_zone_1d() and _plot_brillouin_zone_2d().

static lagrange_lattice_reduction(basis)[source]

Short implementation of Lagrange’s algorithm for 2D lattice reduction.

Parameters:

basis (array_like) – basis of a lattice in reciprocal space, s.t. the basis vectors are b1 = basis[0], b2 = basis[1]

Returns:

out – the reduced basis. If \(\{i b_1 + j b_2 | i, j \in \mathbb{Z}\}\) define a lattice L, the reduced basis vectors will generate the same lattice, albeit being the shortest and “most orthogonal” ones to define the lattice

Return type:

ndarray