qimpy.lattice.Kpath

class Kpath(*, process_grid, lattice, dk, points, checkpoint_in=CheckpointPath(checkpoint=None, path=''))

Bases: Kpoints

Path of k-points traversing Brillouin zone. Typically used only for band structure calculations.

Parameters
__init__(*, process_grid, lattice, dk, points, checkpoint_in=CheckpointPath(checkpoint=None, path=''))

Initialize k-path with spacing dk connecting points.

Parameters
  • lattice (Lattice) – Lattice specification for converting k-points from reciprocal fractional coordinates (input) to Cartesian for determining path lengths.

  • dk (float) – [Input file] Maximum distance between adjacent points on k-path. (Units: \(a_0^{-1}\).)

  • points (list) – [Input file] List of special k-points [kx, ky, kz, label] along path. Each point should contain three fractional coordinates (float) and optionally a string label for this point for use in band structure plots.

  • process_grid (ProcessGrid) –

  • checkpoint_in (CheckpointPath) –

Return type

None

Methods

__init__

Initialize k-path with spacing dk connecting points.

add_child

Construct child object self.`attr_name` of type cls.

add_child_one_of

Invoke add_child on one of several child options in args.

plot

Save band structure plot for electrons to filename.

save_checkpoint

Save self and all children in hierarchy to cp_path.

Attributes

plot(electrons, filename)

Save band structure plot for electrons to filename. TODO: MOVE. This is a postprocessing utility that does not belong here!

Parameters
  • electrons (Electrons) –

  • filename (str) –

Return type

None

comm: Comm

Communicator for k-point division

division: TaskDivision

Division of k-points across comm

k: Tensor

Array of k-points (N x 3)

wk: Tensor

Integration weights for each k (adds to 1)