Hi Martin, Your interpretation of the conservation law is correct, and so does your implementation of it. However I see that you create the graphene lattice as having 2 orbitals, whereas if you have spin and particle-hole, you should have 4 orbitals instead. That is also what the error message says. I usually define all matrix-valued functions via np.kron, so that I remember which Pauli matrix refers to which degree of freedom.
Best, Anton On Wed, 19 Aug 2020 at 14:03, Martin Fonnum Jakobsen <[email protected]> wrote: > > Hello, > > > > I have recently started using KWANT. I hope this is the correct way to ask > questions. > > > > I’m interested in reproducing Fig. 4 in PRL 97, 067007 (2006) – Specular > Andreev Reflection in Graphene. This has been done in KWANT in the PhD thesis > of Tibor Sekera – “Quantum transport of fermions in honeycomb lattices and > cold atomic systems”, chapter 4. The problem is similar to tutorial 2.6. > > > > In my problem, I have a tight-binding Hamiltonian living on a hexagonal > lattice, from which I can construct a discrete BdG equation (See attachment). > In addition, to electron-hole degrees of freedom I’m also interested in > including spin because later I will add magnetic fields and such. > > > > I consider a normal metal lead attached to a superconducing scattering region > with zero barrier at the interface. Since I have both electron-hole and spin > degrees of freedom my BdG equation is 4x4. To account for electron-hole > degrees of freedom I have specified that at each site there should be two > orbitals. In the tutorial 2.6 it is emphasized that it is important to > specify the correct conservation law in the N lead when we want to calculate > the conductance. My question is how should the conservation law (and particle > hole symmetry) in the normal-metal lead look like for my case? > > > > I have tried the standard expression L_0 = > kwant.Builder(sym,conservation_law=s_z) where s_z is the Pauli matrix > [[1,0],[0,-1]]. In this case I obtain a dimension mismatch error. > > > > I have also tried a generalized 4x4 matrix version of this > > L_0 = > kwant.Builder(sym,conservation_law=tinyarray.array([[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,-1]])) > > Or > > L_0 = > kwant.Builder(sym,conservation_law=tinyarray.array([[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,-1]])). > > In these cases I obtain the error “Single `onsite` matrix of shape (4, 4) > provided but there are 2 orbitals per site in the system”. > > > > I think my issue is that I do not fully understand what the Conservation law > actually does. Initially I thought the conservation law was a matrix C such > that C.H.C^-1 should return a block diagonal matrix, where the eigenvalues of > C refers to each block. Is this not an accurate interpretation? > > > > I have attached a PDF with the BdG equation, and my python code as a .py and > .txt file. The content of the .py and .txt file are identical, which format > do you prefer in the future? > > I hope this is OK, and not too overwhelming. > > > > I also tried to subscribe (with this e-mail) to the mailing list, but I’m not > sure that it worked. > > > > Yours sincerely, > > Martin F Jakobsen > >
