wulfric.cell.get_hs_data#

wulfric.cell.get_hs_data(cell, return_relative=True, lattice_type=None, lattice_variation=None, S_matrix=None, C_matrix=None, length_tolerance=1e-08, angle_tolerance=0.0001)[source]#

Return information about high symmetry points and path as defined in the paper by Setyawan and Curtarolo [1].

Parameters:
cell(3, 3) array-like

Matrix of a cell, rows are interpreted as vectors.

return_relativebool, default True

Whether to return coordinates as relative to the reciprocal cell or in absolute coordinates in the reciprocal Cartesian space.

lattice_typestr, optional

One of the 14 lattice types that correspond to the provided cell, case-insensitive. If not provided, then computed automatically from cell. If provided, then it user's responsibility to ensure that lattice_type is correct.

lattice_variationstr, optional

One of the lattice variations that correspond to the provided cell and lattice_type. If not provided, then computed automatically. Case-insensitive.

S_matrix(3, 3) array-like, optional

Transformation matrix S. If not provided, then computed automatically from cell. If provided, then it is user's responsibility to ensure that the matrix is the correct one for the given cell.

C_matrix(3, 3) array-like, optional

Transformation matrix C. If not provided, then computed automatically from cell. If provided, then it is user's responsibility to ensure that the matrix is the correct one for the given cell.

length_tolerancefloat, default \(10^{-8}\)

Tolerance for length variables (lengths of the lattice vectors). Default value is chosen in the contexts of condense matter physics, assuming that length is given in Angstroms. Please choose appropriate tolerance for your problem.

angle_tolerancefloat, default \(10^{-4}\)

Tolerance for angle variables (angles of the lattice). Default value is chosen in the contexts of condense matter physics, assuming that angles are in degrees. Please choose appropriate tolerance for your problem.

Returns:
coordinateslist of (3, 3) numpy.ndarray

Coordinates of the high symmetry points in reciprocal space. Relative to the reciprocal cell.

names: list of str

Names of the high symmetry points. Used for programming, not for plotting. Have the same length as coordinates.

labelslist of str

List of the high symmetry points labels for plotting. Have the same length as coordinates. Labels are not necessary equal to the names.

pathstr

K path. High symmetry points are referenced by elements of names.

See also

wulfric.Kpoints

Class with a convenient interface for the same information.

References

[1]

Setyawan, W. and Curtarolo, S., 2010. High-throughput electronic band structure calculations: Challenges and tools. Computational materials science, 49(2), pp. 299-312.

Examples

>>> import wulfric as wulf
>>> cell = wulf.cell.get_cell_example("hex")
>>> coordinates, names, labels, kpath = wulf.cell.get_hs_data(cell)
>>> kpath
'G-M-K-G-A-L-H-A|L-M|K-H'
>>> labels
['$\\Gamma$', 'A', 'H', 'K', 'L', 'M']
>>> names
['G', 'A', 'H', 'K', 'L', 'M']
>>> coordinates
[array([0., 0., 0.]), array([0. , 0. , 0.5]), array([0.33333333, 0.33333333, 0.5       ]), array([0.33333333, 0.33333333, 0.        ]), array([0.5, 0. , 0.5]), array([0.5, 0. , 0. ])]