From 92e1d102ef046f8ecec59dc51d73433d83ae49d1 Mon Sep 17 00:00:00 2001 From: Antonio Manesco <am@antoniomanesco.org> Date: Wed, 15 Nov 2023 15:35:44 +0100 Subject: [PATCH] build hermitian bloch matrix correctly --- codes/utils.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/codes/utils.py b/codes/utils.py index 22f48a0..47ac550 100644 --- a/codes/utils.py +++ b/codes/utils.py @@ -273,13 +273,17 @@ def generate_guess(vectors, ndof, scale=0.1): """ guess = {} for vector in vectors: - amplitude = scale * 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 + if vector not in guess.keys(): + amplitude = scale * 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)) == 0: + rand_hermitian += rand_hermitian.T.conj() + rand_hermitian /= 2 + guess[vector] = rand_hermitian + else: + guess[vector] = rand_hermitian + guess[tuple(-np.array(vector))] = rand_hermitian.T.conj() return guess -- GitLab