Provides a class for interacting with KPath classes to generate high-symmetry k-paths using different conventions.
HighSymmKpath(structure, has_magmoms=False, magmom_axis=None, path_type='sc', symprec=0.01, angle_tolerance=5, atol=1e-05)¶
This class generates path along high symmetry lines in the Brillouin zone according to different conventions. The class is designed to be used with a specific primitive cell setting. The definitions for the primitive cell used can be found in: Computational Materials Science, 49(2), 299-312. doi:10.1016/j.commatsci.2010.05.010. The space group analyzer can be used to produce the correct primitive structure (method get_primitive_standard_structure(international_monoclinic=False)). Ensure input structure is correct before ‘get_kpoints()’ method is used. See individual KPath classes for details on specific conventions.
structure (Structure) – Structure object
has_magmoms (boolean) – Whether the input structure contains magnetic moments as site properties with the key ‘magmom.’ Values may be in the form of 3-component vectors given in the basis of the input lattice vectors, in which case the spin axis will default to a_3, the third real-space lattice vector (this triggers a warning).
magmom_axis (list or numpy array) – 3-component vector specifying direction along which magnetic moments given as scalars should point. If all magnetic moments are provided as vectors then this argument is not used.
path_type (string) – Chooses which convention to use to generate the high symmetry path. Options are: ‘sc’, ‘hin’, ‘lm’ for the Setyawan & Curtarolo, Hinuma et al., and Latimer & Munro conventions. Choosing ‘all’ will generate one path with points from all three conventions. Equivalent labels between each will also be generated. Order will always be Latimer & Munro, Setyawan & Curtarolo, and Hinuma et al. Lengths for each of the paths will also be generated and output as a list. Note for ‘all’ the user will have to alter the labels on their own for plotting.
symprec (float) – Tolerance for symmetry finding
angle_tolerance (float) – Angle tolerance for symmetry finding.
atol (float) – Absolute tolerance used to determine symmetric equivalence of points and lines on the BZ.
Returns: The correspondance between the kpoint symbols in the Latimer and Munro convention, Setyawan and Curtarolo, and Hinuma conventions respectively. Only generated when path_type = ‘all’.
Obtain a continous version of an inputted path using graph theory. This routine will attempt to add connections between nodes of odd-degree to ensure a Eulerian path can be formed. Initial k-path must be able to be converted to a connected graph.
Args: bandstructure (Bandstructure): Bandstructure object.
Returns: distances_map (list): Mapping of ‘distance’ segments for altering a
BSPlotter object to new continuous path. List of tuples indicating the new order of distances, and whether they should be plotted in reverse.
kpath_euler (list): New continuous kpath in the HighSymmKpath format.
Returns: The correspondance between numbers and kpoint symbols for the combined kpath generated when path_type = ‘all’. None otherwise.
Returns: List of lengths of the Latimer and Munro, Setyawan and Curtarolo, and Hinuma conventions in the combined HighSymmKpath object when path_type = ‘all’ respectively. None otherwise.
Returns: The type of kpath chosen