pythtb.Mesh.build_path#

Mesh.build_path(nodes, n_interp=1)[source]#

Build a k-path in the Brillouin zone.

A path mesh has a single axis that traces a path through a higher-dimensional \((k, \lambda)\)-space.

Parameters:
nodesnp.ndarray

The k/parameter-path points in reduced coordinates. Must have the shape (N_nodes, dim_total) for any k/parameter-path, where dim_total is the total number of dimensions in the mesh defined by dim_total = dim_k + dim_lambda.

n_interpint

The number of interpolation points between each pair of nodes.

Notes

The number of points along the path is determined by the number of interpolation points specified. For N nodes, there will be N-1 segments, each with n_interp points, plus the endpoints. Thus, the total number of points will be N-1 + 1 + (N-1) * n_interp = N + (N-1) * n_interp.

Examples

We can create a k-path by specifying the nodes in reduced coordinates.

>>> nodes = np.array([[0, 0, 0], [0.5, 0.5, 0], [1, 1, 0]])
>>> mesh.build_path(nodes, n_interp=5)

Since we specified 5 interpolation points between the nodes, the resulting mesh will have 10 points along the path.

>>> mesh.flat.shape
(10, 3)