Types
Index
CrystalBase.KPathCrystalBase.KSegmentCrystalBase.group_nearby_indicesCrystalBase.linear_pathCrystalBase.merge_nearby_labelsCrystalBase.unicode_kpoint_labelsCrystalBase.unicode_kpoint_labels!
Documentation
CrystalBase.KPath — Type
struct KPath{T<:Real}Kpoint path in the Brillouin zone.
Storing explicitly the kpoint coordinates along the path, as well as the indices and labels of high-symmetry kpoints.
See also KSegment for an alternative representation of kpoint path, which only stores the segments of high-symmetry kpoint path but not the explicit kpoint coordinates along the path.
Fields
recip_lattice: Reciprocal lattice vectors (in units of 1/L, where L is unit of length)points: Fractional kpoint coordinates along the kpathindices: Indices of high-symmetry kpoints along the kpathlabels: Labels of high-symmetry kpoints
CrystalBase.KSegment — Type
struct KSegment{T<:Real}Segments of high-symmetry kpoint path, each segment is a continuous path between high-symmetry kpoints. Different segments are disconnected in the Brillouin zone.
See also KPath for an alternative representation of kpoint path.
Fields
recip_lattice: Reciprocal lattice vectors (in units of 1/L, where L is unit of length)segments: Segments of high-symmetry kpoint path, each segment is a continuous path between high-symmetry kpoints. Different segments are disconnected in the Brillouin zone.
coords: Coordinates of high-symmetry kpoints
CrystalBase.group_nearby_indices — Method
group_nearby_indices(indices)
Group consecutive high-symmetry points.
If two high-symmetry kpoints are neighbors, group them together.
Arguments
indices: indices of high-symmetry kpoints, start from 1
Return
groups: a vector of vectors, if the inner vector contains more than 1 index, it means those indices are neighbors and are grouped together.
Example
CrystalBase.group_nearby_indices([1, 2, 4, 5, 6])
# output
2-element Vector{Vector{Int64}}:
[1, 2]
[4, 5, 6]CrystalBase.linear_path — Method
linear_path(kpath)
Get a 1D vector of cumulative distance along the kpath.
CrystalBase.merge_nearby_labels — Method
merge_nearby_labels(indices, labels)
Merge consecutive high-symmetry points.
If two high-symmetry kpoints are neighbors, merge them into one, with label X|Y, where X and Y are the original labels of the two kpoints, respectively.
Arguments
indices: indices of high-symmetry kpoints, start from 1labels: labels of high-symmetry kpoints
CrystalBase.unicode_kpoint_labels! — Method
unicode_kpoint_labels!(kpath)
Convert labels of high-symmetry kpoints in kpath to unicode string.
CrystalBase.unicode_kpoint_labels — Method
unicode_kpoint_labels(labels)
Convert labels of high-symmetry kpoints to unicode string.
Examples
CrystalBase.unicode_kpoint_labels(["GAMMA", "DELTA_0", "LAMBDA_1", "SIGMA_2", "X"])
# output
5-element Vector{String}:
"Γ"
"Δ₀"
"Λ₁"
"Σ₂"
"X"