vibeqc.monkhorst_pack¶
- vibeqc.monkhorst_pack(system, mesh, is_shift=None, use_symmetry=False, *, symmetry=None)[source]¶
Build a legacy
BlochKMeshMonkhorst-Pack mesh.This public compatibility wrapper keeps the historical gamma-centred default of the C++ binding (
is_shift=(0, 0, 0)) while accepting the same low-dimensional active-axis shorthand asKPoints:[n]for 1D and[n1, n2]for 2D. Inactive axes are pinned to Γ with mesh size 1 and shift 0.Use
KPoints.monkhorst_pack()for the richer Python API with classical Monkhorst-Pack auto-shifts.Warning
This is the Gamma-centred convention, and it is not what ASE/GPAW’s identically-named function returns. vibe-qc samples
{0, 1/N, ..., (N-1)/N}along each axis (Gamma is always in the set);ase.dft.kpoints.monkhorst_packreturns the classical mesh, offset by half a step.For odd N the half-step offset wraps onto the same lattice and the two point sets are identical. For even N it lands exactly between vibe-qc’s points and the sets are disjoint – measured 2026-08-02,
(3,3,3)and(5,5,5)share all their points while(2,2,2),(4,4,4)and(6,6,6)share none. A cross-code comparison validated at an odd mesh will therefore pass and still be sampling a different Brillouin zone at an even one.Pass
is_shiftexplicitly to build the shifted mesh.