From ed3827241696f94976b34c7caf19e1e7ef0cbc21 Mon Sep 17 00:00:00 2001 From: Johanna <johanna@zijderveld.de> Date: Fri, 12 Apr 2024 15:44:43 +0200 Subject: [PATCH] fix tests by fixing imports of generate_guess --- codes/mf.py | 62 ++++++++++++++++++------------------- codes/params/test_params.py | 2 +- codes/tb/test_tb.py | 4 +-- codes/test_graphene.py | 4 +-- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/codes/mf.py b/codes/mf.py index 8d3efb7..e3f9c3a 100644 --- a/codes/mf.py +++ b/codes/mf.py @@ -26,37 +26,6 @@ def density_matrix(kham, fermi_energy): return density_matrix_kgrid -def fermi_on_grid(kham, filling): - """ - Compute the Fermi energy on a grid of k-points. - - Parameters - ---------- - hkfunc : function - Function that returns the Hamiltonian at a given k-point. - nk : int - Number of k-points in the grid. - Returns - ------- - fermi_energy : float - Fermi energy - """ - - vals = np.linalg.eigvalsh(kham) - - norbs = vals.shape[-1] - vals_flat = np.sort(vals.flatten()) - ne = len(vals_flat) - ifermi = int(round(ne * filling / norbs)) - if ifermi >= ne: - return vals_flat[-1] - elif ifermi == 0: - return vals_flat[0] - else: - fermi = (vals_flat[ifermi - 1] + vals_flat[ifermi]) / 2 - return fermi - - def meanfield(density_matrix_tb, h_int, n=2): """ Compute the mean-field in k-space. @@ -95,3 +64,34 @@ def meanfield(density_matrix_tb, h_int, n=2): for vec in frozenset(h_int) } return add_tb(direct, exchange) + + +def fermi_on_grid(kham, filling): + """ + Compute the Fermi energy on a grid of k-points. + + Parameters + ---------- + hkfunc : function + Function that returns the Hamiltonian at a given k-point. + nk : int + Number of k-points in the grid. + Returns + ------- + fermi_energy : float + Fermi energy + """ + + vals = np.linalg.eigvalsh(kham) + + norbs = vals.shape[-1] + vals_flat = np.sort(vals.flatten()) + ne = len(vals_flat) + ifermi = int(round(ne * filling / norbs)) + if ifermi >= ne: + return vals_flat[-1] + elif ifermi == 0: + return vals_flat[0] + else: + fermi = (vals_flat[ifermi - 1] + vals_flat[ifermi]) / 2 + return fermi diff --git a/codes/params/test_params.py b/codes/params/test_params.py index 66a31da..c97d3f1 100644 --- a/codes/params/test_params.py +++ b/codes/params/test_params.py @@ -1,6 +1,6 @@ # %% from codes.params.rparams import mf_to_rparams, rparams_to_mf -from codes.kwant_helper.utils import generate_guess +from codes.tb.utils import generate_guess from codes.tb.tb import compare_dicts import pytest diff --git a/codes/tb/test_tb.py b/codes/tb/test_tb.py index 6fee47c..bb42c62 100644 --- a/codes/tb/test_tb.py +++ b/codes/tb/test_tb.py @@ -1,8 +1,8 @@ # %% import numpy as np from codes.tb.tb import compare_dicts -from codes.kwant_helper import utils import itertools as it +from codes.tb.utils import generate_guess from codes.tb.transforms import kfunc_to_tb, tb_to_kfunc, tb_to_kham, tb_to_khamvector import pytest @@ -39,7 +39,7 @@ def test_tbkham_transform(): (-1, -1), ) ndof = 10 - h_0 = utils.generate_guess(vectors, ndof) + h_0 = generate_guess(vectors, ndof) assert np.allclose( tb_to_kham(h_0, nk=nk, ndim=2), tb_to_khamvector(h_0, nk=nk, ndim=2) diff --git a/codes/test_graphene.py b/codes/test_graphene.py index 921428e..9ff39c0 100644 --- a/codes/test_graphene.py +++ b/codes/test_graphene.py @@ -4,7 +4,7 @@ from codes.model import Model from codes.solvers import solver from codes import kwant_examples from codes.kwant_helper import utils -from codes.tb.utils import compute_gap +from codes.tb.utils import compute_gap, generate_guess from codes.tb.tb import add_tb import pytest @@ -46,7 +46,7 @@ def gap_prediction(U, V): nk = 20 h_int = utils.builder_to_tb(int_builder, params) - guess = utils.generate_guess(frozenset(h_int), len(list(h_0.values())[0])) + guess = generate_guess(frozenset(h_int), len(list(h_0.values())[0])) model = Model(h_0, h_int, filling) mf_sol = solver(model, guess, nk=nk, optimizer_kwargs={"verbose": True, "M": 0}) -- GitLab