withopen(file_path, 'r') as f: origin_data = f.readlines() pass
num_wann = int(origin_data[1]) nrpts = int(origin_data[2]) n = 0 if nrpts % 15: n = int(nrpts/15 + 1)
head = origin_data[:n+3] data = origin_data[n+3:] return num_wann, nrpts, head, data
defcreate_indices_map(dim): indices_ori = np.array([i+1for i inrange(dim)]) Us = creat_trans_matrix(dim) indices = np.array(indices_ori * Us.T, dtype=int)[0] returndict(zip(indices_ori, indices))
if __name__ == "__main__":
num_wann, nrpts, head, data = load_wannier_hr('./') indices_map = create_indices_map(num_wann)
withopen('new_wannier90_hr.dat.dat', 'w+') as f: for i in head: f.write(i) for i in data: line = i.split() line[3] = indices_map[int(line[3])] line[4] = indices_map[int(line[4])] for j in line: j = str(j) iflen(j) == 2orlen(j) == 9: f.write(' '+j) else: f.write(' '+j) f.write('\n')