Skip to content
Snippets Groups Projects
Commit 17930339 authored by Kostas Vilkelis's avatar Kostas Vilkelis :flamingo: Committed by Johanna Zijderveld
Browse files

rm kham_to_tb

parent 3e321ebb
No related branches found
No related tags found
1 merge request!7Examples
......@@ -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__",
......
......@@ -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}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment