Skip to content
Snippets Groups Projects

Interface refactoring

Merged Kostas Vilkelis requested to merge interface-refactoring into main
All threads resolved!
Compare and Show latest version
2 files
+ 15
14
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 11
11
Antonio Manesco
Last comment by Johanna Zijderveld
@@ -239,8 +239,6 @@ def build_interacting_syst(builder, lattice, func_onsite, func_hop, max_neighbor
def generate_guess(tb_model, int_model, scale=0.1):
"""
nk : int
Number of k-points along each direction.
tb_model : dict
Tight-binding model of non-interacting systems.
int_model : dict
@@ -250,22 +248,24 @@ def generate_guess(tb_model, int_model, scale=0.1):
Returns:
--------
guess : nd-array
Guess evaluated on a k-point grid.
guess : tb dictionary
TB guess.
"""
ndof = tb_model[next(iter(tb_model))].shape[-1]
guess = {}
vectors = [*tb_model.keys(), *int_model.keys()]
vectors = frozenset(tb_model) | frozenset(int_model)
for vector in vectors:
amplitude = np.random.rand(ndof, ndof)
phase = 2 * np.pi * np.random.rand(ndof, ndof)
rand_hermitian = amplitude * np.exp(1j * phase)
if np.linalg.norm(np.array(vector)):
rand_hermitian += rand_hermitian.T.conj()
rand_hermitian /= 2
guess[vector] = rand_hermitian*scale
return guess#kgrid_hamiltonian(nk, guess) * scale
guess[vector] = rand_hermitian * scale
op_vector = tuple(-np.array(vector))
if op_vector==vector:
guess[vector] += guess[vector].T.conj()
guess[vector] /= 2
else:
guess[op_vector] = guess[vector].T.conj()
return guess
def hk2tb_model(hk, tb_model, int_model, ks=None):
Loading