Skip to content
Snippets Groups Projects
Commit ed382724 authored by Johanna Zijderveld's avatar Johanna Zijderveld
Browse files

fix tests by fixing imports of generate_guess

parent a7520f38
No related branches found
No related tags found
1 merge request!4Interface refactoring
......@@ -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
# %%
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
......
# %%
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)
......
......@@ -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})
......
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