If you check your band, you will see that the maximum of your energy is of the order 1E-34 ! kwant.plotter.bands(syst.leads) This means that you have a problem in your definitions. First of all, do not define the Pauli matrices with hbar: You can see that your onsite potential is (as you defined it) t*hbar*sigma0. It should be t*sigma0. For the spin orbit term, it depends how you define the constant alpha. if you check the reference , you will see that there is no hbar. In your code, (after you eliminate hbar from the definition of the Pauli matrices), alpha becomes an energy, so you need to put a fraction of "t" alpha=0.1*t.
Check also the value of e_z and verify that it is consistent with the values of "t" and alpha.
I want just to stress that the transmission you are calculating is a number, so it will not depend on the change of units you did. I hope this helps
On Sat, Jul 25, 2020 at 3:05 PM Nathaniel Gregory Seil < firstname.lastname@example.org> wrote:
I would like to model a 2DEG under a magnetic field and have been investigating the spin_orbit.py code.
I would like to modify this code so that it utilises real units and models upon a to-scale lattice. However, I am a little bit unclear as to how to progress.
I noticed in the base code we have a = 1, t = 1 and hbar = 2 (seen from the Pauli spin matrices which normally have hbar/2 as a coefficient in front). To represent the real life scenario of a lattice with constant a = 5E-10 m, would we do the following:
- a = 5E-10 m
- hbar = 1.05457E-34 J s (standard SI units)
- m_electron = 9.109E-31 kg (standard SI units)
- t = hbar ^ 2 / (2 * m_electron * a^2)
and then just substitute these values into the rest of the code?
I get the result of 0 conductivity for the lead voltages -0.046 to 0.105V (code shows "energies=[0.01 * i*t - 0.3*t for i in range(100)]"). I also get this for -0.0046 to 0.0105V and for -0.46 - 1.05V. Do these results seem right?
I have attached my code with these substitutions and the results.
Many thanks, Nathaniel Seil