Dear Colleagues,

Hi, we are 2 students at Imperial College looking to incorporate your boundstate algorithm (https://scipost.org/submissions/1711.08250v1in the context of a lateral Josephson junction. The code we used was copied and pasted from here: ( https://gitlab.kwant-project.org/jbweston/kwant/-/blob/feature/boundstate/kwant/physics/boundstate.py) As an exercise we are trying to reproduce fig. 9 in this paper. Implementing the same parameters, we managed to obtain similar graphs shown below for a value of t=0.7.



However, we notice that at some values of t, the boundstate algorithm starts yielding non-physical results. Examples include:

  1. At t=-1 (which is what we assumed t to be initially from the captions in fig. 7), the algorithm returned energies above the band gap in the JJ in topological regime for some values of phi, the phase difference, and returned true values for some values of phi but not for others in the trivial regime.

  1. In the B scan for t=-1 boundstates start disappearing from B=0.325 onwards, well before crossing the degeneracy point, and in the topological regime they do not line up with the band edge.

  1. We also noticed that the algorithm results are dependent on the system setup. To be able to independently replicate fig. 9 my partner and I set up a 2-site (left lead - super - normal - right lead) and 3-site (left lead - super - normal - super - right lead) system respectively to implement the phase from crossing the S-N interface. A schematic of this is shown below.

  2. While most standard kwant functionalities seem to recognise the 2 systems are equivalent to each other, we obtained drastically different results from the boundstate algorithm. Examples include a t-scan at B=1 to uncover possible t values where physical ABS spectra could be returned.

  3.                              2 site                                                        3 site
  4. (We checked that the thing causing the drastically different behaviour is the number of sites in the system. We were able to replicate each other's results only by changing the number of sites in the scattering region.)
  1. We plotted f(E) in the find_boundstate function for t=-1, B=0.3 (where the algorithm succeeds in detecting the bound state) and B=0.35 (where the algorithm fails to do so), respectively. We noticed that the 2 roots from B=0.3 which are validated to be the true bound states are omitted in B=0.35, not because the validation operator rejects them, but because min_eigenvalue() (or lowest value of sparse_diag()) at these 2 energies indeed returned a value much larger than tol=1e-8 (0.003). We incremented the B field to see when the boundstate to no-boundstate transition occurs and it's at B=0.325 that the min_eigenvalue suddenly shoots up to 1e-4 (for B=0.324 we have 1e-9). We do not understand how this comes to be.

  2. The above disappearance of boundstates past B=0.325 is encountered when we set sparse=False too.
We would like to know if similar problems with the boundstate algorithm have been encountered before, and if so, what do these signatures tell us is wrong, or does this indeed suggest something is incomplete in the implementation? Finally, we would also like to ask about your specific system setup in Kwant to obtain figure 9, as well as the parameter t that was used, as this was not specified explicitly. Many thanks in advance for answering our query!

Sincerely,

Chi Zhang & Ryan Tiew

Blackett Laboratory

Imperial College London