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 (tuple[float, ...])
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
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
Dimensions of k-mesh
Offset of k-mesh from Gamma
Whether to use inversion in k-space to reduce k-points
Reduced index of each k-point in mesh
Symmetry index that maps mesh points to reduced set
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.
variant_name
Version of children having variants (if any)
- 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
- offset: tuple[float, ...]
Offset of k-mesh from Gamma
- size: tuple[int, ...]
Dimensions of k-mesh
- use_inversion: bool
Whether to use inversion in k-space to reduce k-points