### Simulate the decoupled system and Wannerize the eigenstates ```python= voltages = {'left_1': -0.0036, 'left_2': -0.0086, 'right_1': -0.0086, 'right_2': -0.0036, 'top_1': -0.0037, 'top_2': -0.0037, 'global_accumul': -7e-05} summed_ham = sum( [ linear_ham[key] * voltages[key] for key, value in linear_ham.items() ] ) tight_binding_hamiltonian = base_hamiltonian + summed_ham eigval, eigvec = sl.sort_eigen(sparse.linalg.eigsh(tight_binding_hamiltonian.tocsc(), k=12, sigma = 0)) lowest_e_indices = np.argsort(np.abs(eigval))[: 6] lowest_e_energies = eigval[lowest_e_indices] lowest_e_states = eigvec.T[:, lowest_e_indices].T ``` ![](https://i.imgur.com/bCIlD4c.png) #### Wannierize the decoupled states to find a basis with isolated Majoranas ```python= X_operator = Density( trijunction, onsite=lambda site: np.eye(4) * site.pos[0] ) Y_operator = Density( trijunction, onsite=lambda site: np.eye(4) * site.pos[1] ) projected_X_operator = wannier_1D_operator(X_operator, lowest_e_states.T) projected_Y_operator = wannier_1D_operator(Y_operator, lowest_e_states.T) w_basis = wannier_basis([projected_X_operator, projected_Y_operator]) mlwf = w_basis.T @ lowest_e_states ``` ![](https://i.imgur.com/UUvKDbN.png) ### Turn on the coupling between one of the Majorana pairs and compute the eigenstates again ```python= voltages = {'left_1': -0.0014, 'left_2': -0.0014, 'right_1': -0.0014, 'right_2': -0.0014, 'top_1': -0.0037, 'top_2': -0.0037, 'global_accumul': 3e-3} ``` ![](https://i.imgur.com/etCNllv.png) ```python= summed_ham = sum( [ linear_ham[key] * voltages[key] for key, value in linear_ham.items() ] ) tight_binding_hamiltonian = base_hamiltonian + summed_ham eigval, eigvec = sl.sort_eigen(sparse.linalg.eigsh(tight_binding_hamiltonian.tocsc(), k=12, sigma = 0)) lowest_e_indices = np.argsort(np.abs(eigval))[: 6] lowest_e_energies = eigval[lowest_e_indices] coupled_states = eigvec.T[:, lowest_e_indices].T ``` ![](https://i.imgur.com/w5tG9KJ.png) ### Unitary transformation using SVD ```python= # Overlap matrix decoupled_states = mlwf S = coupled_states @ decoupled_states.T.conj() # Unitary matrix using SVD U, _, Vh = svd(S) S_prime = U @ Vh # Transform coupled Hamiltonian to Majorana basis coupled_ham = S_prime.T.conj() @ np.diag(lowest_e_energies) @ S_prime ``` The relevant part of the coupled Hamiltonian in the Majorana basis is ![](https://i.imgur.com/uUhXIHU.png)