qimpy.lattice.Kmesh

class Kmesh(*, process_grid, symmetries, lattice, checkpoint_in=(None, ''), offset=(0.0, 0.0, 0.0), size=(1, 1, 1), use_inversion=True)

Bases: Kpoints

Uniform k-mesh sampling of Brillouin zone

Parameters:
  • process_grid (ProcessGrid) –

  • symmetries (Symmetries) –

  • lattice (Lattice) –

  • checkpoint_in (CheckpointPath) –

  • offset (Union[Sequence[float], np.ndarray]) –

  • size (tuple[int, ...]) –

  • use_inversion (bool) –

__init__(*, process_grid, symmetries, lattice, checkpoint_in=(None, ''), offset=(0.0, 0.0, 0.0), size=(1, 1, 1), use_inversion=True)

Construct k-mesh of specified size and offset.

Parameters:
  • symmetries (Symmetries) – Symmetry group used to reduce k-points to irreducible set.

  • lattice (Lattice) – Lattice specification used for automatic size determination.

  • offset (Sequence[float] | ndarray) – [Input file] Offset of k-point mesh in k-mesh coordinates. (That is, by offset / size in fractional reciprocal coordinates.) For example, use [0.5, 0.5, 0.5] for the Monkhorst-Pack scheme. Default: [0., 0., 0.] selects Gamma-centered mesh.

  • size (float | Sequence[int] | ndarray) – [Input file] Number of k per dimension, or minimum supercell size. If given as a list of 3 integers, number of k-points along each reciprocal lattice direction. Instead, a single float specifies the minimum real-space size of the k-point sampled supercell i.e. pick number of k-points along dimension i = ceil(size / L_i), where L_i is the length of lattice vector i (in bohrs). Default: [1, 1, 1] selects a single k-point = offset.

  • use_inversion (bool) – [Input file] Whether to use inversion in k-space to reduce k-points. This corresponds to complex conjugation in real space, and only matters for systems without inversion symmetry in real space. Default: True; should only need to disable this when interfacing with codes that do not support this symmetry eg. BerkeleyGW.

  • process_grid (ProcessGrid) –

  • checkpoint_in (CheckpointPath) –

Return type:

None

Methods

__init__

Construct k-mesh of specified size and offset.

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.

save_checkpoint

Save self and all children in hierarchy to cp_path.

Attributes

size

Dimensions of k-mesh

i_reduced

Reduced index of each k-point in mesh

i_sym

Symmetry index that maps mesh points to reduced set

invert

Inversion factor (1, -1) in reduction of each k

comm

Communicator for k-point division

k

Array of k-points (N x 3)

wk

Integration weights for each k (adds to 1)

division

Division of k-points across comm

child_names

Names of attributes with child objects.

i_reduced: Tensor

Reduced index of each k-point in mesh

i_sym: Tensor

Symmetry index that maps mesh points to reduced set

invert: Tensor

Inversion factor (1, -1) in reduction of each k

size: tuple[int, ...]

Dimensions of k-mesh