From eec49146a2a9901a4f54d23308102341e3fcac5a Mon Sep 17 00:00:00 2001 From: Johanna <johanna@zijderveld.de> Date: Mon, 15 Apr 2024 15:02:29 +0200 Subject: [PATCH] Allow user k-array as input to tb_to_khamvector function --- codes/tb/transforms.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/codes/tb/transforms.py b/codes/tb/transforms.py index 3069681..1982c6d 100644 --- a/codes/tb/transforms.py +++ b/codes/tb/transforms.py @@ -3,7 +3,7 @@ from scipy.fftpack import ifftn import itertools as it -def tb_to_khamvector(tb, nk, ndim): +def tb_to_khamvector(tb, nk, ndim, ks=None): """ Real-space tight-binding model to hamiltonian on k-space grid. @@ -22,9 +22,9 @@ def tb_to_khamvector(tb, nk, ndim): Hamiltonian evaluated on a k-point grid. """ - - ks = np.linspace(-np.pi, np.pi, nk, endpoint=False) - ks = np.concatenate((ks[nk // 2 :], ks[: nk // 2]), axis=0) # shift for ifft + if ks is None: + ks = np.linspace(-np.pi, np.pi, nk, endpoint=False) + ks = np.concatenate((ks[nk // 2 :], ks[: nk // 2]), axis=0) # shift for ifft kgrid = np.meshgrid(*([ks] * ndim), indexing="ij") num_keys = len(list(tb.keys())) @@ -53,6 +53,10 @@ def tb_to_kfunc(tb): ------- function A function that takes a k-space vector and returns a complex np.array. + + Notes + ----- + Function doesn't work for all dimensions """ def kfunc(k): -- GitLab