def kpt_length(kpts): latConst, latticeVecs, atomSetDirect = readCONTCAR(fileName='CONTCAR') a, b, c = ([lat for lat in latticeVecs]) G_a = 2 * np.pi * np.cross(b, c) / np.dot(c, np.cross(a, b)) G_b = 2 * np.pi * np.cross(c, a) / np.dot(c, np.cross(a, b)) G_c = 2 * np.pi * np.cross(a, b) / np.dot(c, np.cross(a, b)) scale = np.array([np.linalg.norm(v) for v in [G_a, G_b, G_c]]) kpts = [kpt * scale for kpt in kpts] kpts.append(kpts[0]) x = [ np.linalg.norm(kpts[i] - kpts[i-1]) for i,k in enumerate(kpts)] x = x[:-1] x = [dist if dist < 0.3 * np.min(scale) else 0 for dist in x] x = np.cumsum(x) return x