SimpleBZ

Inheritance Diagram

Methods

 SimpleBZ.__init__(vertices, basis, dim) Checks whether given points lie inside the 1st Brillouin Zone. SimpleBZ.from_recip_basis_vectors(...) 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) [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