From 17930339886e70966b45da9d70f45faae724143a Mon Sep 17 00:00:00 2001 From: Kostas Vilkelis <kostasvilkelis@gmail.com> Date: Tue, 7 May 2024 00:26:53 +0200 Subject: [PATCH] rm kham_to_tb --- pymf/__init__.py | 3 +-- pymf/tb/transforms.py | 48 ------------------------------------------- 2 files changed, 1 insertion(+), 50 deletions(-) diff --git a/pymf/__init__.py b/pymf/__init__.py index 613fc91..b234e9f 100644 --- a/pymf/__init__.py +++ b/pymf/__init__.py @@ -14,7 +14,7 @@ from .solvers import solver from .model import Model from .observables import expectation_value from .tb.tb import add_tb, scale_tb -from .tb.transforms import kham_to_tb, tb_to_khamvector +from .tb.transforms import tb_to_khamvector from .tb.utils import generate_guess, calculate_fermi_energy @@ -28,7 +28,6 @@ __all__ = [ "calculate_fermi_energy", "construct_density_matrix", "meanfield", - "kham_to_tb", "tb_to_khamvector", "__version__", "__version_tuple__", diff --git a/pymf/tb/transforms.py b/pymf/tb/transforms.py index 9462ff0..3a0e990 100644 --- a/pymf/tb/transforms.py +++ b/pymf/tb/transforms.py @@ -62,51 +62,3 @@ def ifftn_to_tb(ifft_array: np.ndarray) -> tb_type: keys = [np.arange(-size[0] // 2 + 1, size[0] // 2) for i in range(len(size))] keys = itertools.product(*keys) return {tuple(k): ifft_array[tuple(k)] for k in keys} - - -def kham_to_tb( - kham: np.ndarray, - tb_keys: list[tuple[None] | tuple[int, ...]], - ks: ks_type = None, -) -> tb_type: - """Convert a Hamiltonian evaluated on a k-grid to a tight-binding dictionary. - - Parameters - ---------- - kham : - Hamiltonian sampled on a grid of k-points with shape (nk, nk, ..., ndof, ndof), - where ndof is number of internal degrees of freedom. - tb_keys : - List of keys for which to compute the tight-binding dictionary. - ks : - I have no clue why we need this, so this goes on the chopping board. - Returns - ------- - : - Tight-binding model of Hartree-Fock solution. - """ - if ks is not None: - ndim = len(kham.shape) - 2 - dk = np.diff(ks)[0] - nk = len(ks) - k_pts = np.tile(ks, ndim).reshape(ndim, nk) - k_grid = np.array(np.meshgrid(*k_pts)) - k_grid = k_grid.reshape(k_grid.shape[0], np.prod(k_grid.shape[1:])) - kham = kham.reshape(np.prod(kham.shape[:ndim]), *kham.shape[-2:]) - - hopps = ( - np.einsum( - "ij,jkl->ikl", - np.exp(1j * np.einsum("ij,jk->ik", tb_keys, k_grid)), - kham, - ) - * (dk / (2 * np.pi)) ** ndim - ) - - h = {} - for i, vector in enumerate(tb_keys): - h[tuple(vector)] = hopps[i] - - return h - else: - return {(): kham} -- GitLab