Skip to content
Snippets Groups Projects
Commit 7c6d8ce0 authored by Kostas Vilkelis's avatar Kostas Vilkelis :flamingo:
Browse files

generate hermitian guesses

parent 99a589bc
No related branches found
No related tags found
1 merge request!4Interface refactoring
......@@ -253,16 +253,18 @@ def generate_guess(tb_model, int_model, scale=0.1):
"""
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
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
......
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