k-path coordinates are given in the fractional reciprocal basis (b1,b2), not Cartesian, so they stay invariant under lattice scaling. Custom paths are useful for zooming in on a band crossing or for stitching together unusual cuts through the Brillouin zone. The points you pass are the path corners; intermediate samples are filled in by linear interpolation.
1import blaze
2
3# A custom k-path in fractional reciprocal coordinates.
4# Here: Γ → X → M → Γ, sampled densely.
5k_path = [
6 [0.0, 0.0], [0.25, 0.0], [0.5, 0.0],
7 [0.5, 0.25], [0.5, 0.5],
8 [0.25, 0.25], [0.0, 0.0],
9]
10
11result = blaze.solve(
12 lattice_type="square",
13 epsilon_background=1.0,
14 epsilon_atoms=8.9,
15 radius_atom=0.2,
16 polarization="TM",
17 k_path=k_path,
18)
19
20print(result.k_points.shape) # (7, 2)