Types

Index

Documentation

CrystalBase.KPathType
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 kpath

  • indices: Indices of high-symmetry kpoints along the kpath

  • labels: Labels of high-symmetry kpoints

source
CrystalBase.KSegmentType
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
source
CrystalBase.group_nearby_indicesMethod
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]
source
CrystalBase.merge_nearby_labelsMethod
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 1
  • labels: labels of high-symmetry kpoints
source
CrystalBase.unicode_kpoint_labelsMethod
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"
source