Dear Nathaniel, You are using the word voltage to what we commonly call onsite potential. In this case, and for your code, once you do the corrections I specified in the first email or just use t=1, a=1, your code will work fine. You can express the transmission for all the energies in the band spectrum.
that is to say for all E in [0, 8(t+alpha)]. I hope this helps, Adel On Tue, Jul 28, 2020 at 12:51 AM Nathaniel Gregory Seil < nsei7...@uni.sydney.edu.au> wrote: > Dear Adel, > > Thank you again for your insight. I have a few clarification questions: > > 1) Given the default spin_orbit.py code, are you saying it is possible to > get the conductance from it if I apply energies at a fraction of t (which I > have done for -0.3*t to 0.7 * t)? And there will be voltages corresponding > to this. > > 2) Given the default spin_orbit.py code, are you alternatively suggesting > that the same system corresponds for voltages whereupon, if I converted > them to energies, they would be at fractions of the given range of -0.3t to > 0.7t? What fraction would this be (e.g. 0.01,0.1,...)? > > 3) Given the above two questions, how would then I know which energy and > voltage scale to use? Would I apply the suggested formulation in my last > email? > > 4) I see your point about the voltage difference between the two leads. I > am treating the voltage rather as just a potential for the electrons on the > left lead. Therefore, the energies I apply to the system would correspond > to these voltages * electron charge. I am in a way ignoring the ongoing > effects of the voltage difference on electrons as they travel through the > scattering area. Does this influence your argument about the voltage > difference? > > 5) This is more if the above questions yield that I am incorrect. Do I > need to modify the default spin_orbit.py code so that instead it calculates > the Kubo conductivity, suggested in page 83 of the Kwant documentation? If > so, I am confused because my understanding is that we should be getting > stepped conductance due to the quantum hall effect. We get this stepped > conductance with the existing code. > > Again, many thanks for your time and patience. > > Kind regards, > Nathaniel > ------------------------------ > *From:* Abbout Adel <abbout.a...@gmail.com> > *Sent:* Monday, July 27, 2020 10:54 PM > *To:* Nathaniel Gregory Seil <nsei7...@uni.sydney.edu.au> > *Cc:* kwant-discuss@python.org <kwant-discuss@python.org> > *Subject:* Re: [Kwant] Migrating spin_orbit.py to real unit system > > Dear Nathaniel, > > In all cases, whatever you use for the parameters of your system (a, t, > e_z), the transmission will be a number and will not change. > > You are talking about a voltage. The voltage we talk about usually, is the > difference between the left and right lead. The Transmission, which differs > from the conductance, is obtained for the limit V--->0 and dividing by > e^2/h. (the exact form involves an integral over energy) > Transmission: no unit, doesn't depend on V > Conductance: e^2/h, depends on V > > In the code you provided you are calculating the transmission. > if you want to use a voltage, usually you will need to take a fraction of > "t" regardless of the unit you are considering. > > I hope this helps, > Adel > > On Mon, Jul 27, 2020 at 2:12 AM Nathaniel Gregory Seil < > nsei7...@uni.sydney.edu.au> wrote: > > Dear Abbout, > > Many thanks for your response and advice. > > I have made the changes you've suggested. However, I am unsure of your > last point. I get that the output is a transmission and that change in > units would not affect the units on that quantity. > > However, how would I know that I am applying the correct voltage/energy to > the leads? > > I understand that there is a scaling of the energies applied to the system > that can be calculated like: > > - t_actual = hbar^2 / (2*m_electron_real * a_real^2) > - (hbar, m_electron_real and a_real take on their SI units) > - t is set to 1 in the code > - Therefore the range of energies from [0 , 1] (energies=[0.01 * i*t > for i in range(100)]) actually corresponds to energies [(0 * > t_actual,1*t_actual)] > > Would it therefore be correct to take this approach? i.e.: > 1) to use a = 1, t = 1 (as the default example code does) and then > 2) acknowledge this solution, if applied to a system with a_real, > m_electron_real and hbar in SI units, corresponds to applying lead energies > in the range [(0 * t_actual,1*t_actual)]? > > > Also if other people wish to please feel welcome to add to this discussion. > > > Many thanks again for your help. > ------------------------------ > *From:* Abbout Adel <abbout.a...@gmail.com> > *Sent:* Monday, July 27, 2020 2:32 AM > *To:* Nathaniel Gregory Seil <nsei7...@uni.sydney.edu.au> > *Cc:* kwant-discuss@python.org <kwant-discuss@python.org> > *Subject:* Re: [Kwant] Migrating spin_orbit.py to real unit system > > Dear Nathaniel, > > 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[0]) > 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 [1], 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 > > > [1] https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.90.256601 > <https://protect-au.mimecast.com/s/Acd1CZY1NqiGk7GvSzdInV?domain=journals.aps.org> > > On Sat, Jul 25, 2020 at 3:05 PM Nathaniel Gregory Seil < > nsei7...@uni.sydney.edu.au> wrote: > > Hello, > > 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 > > > > -- > Abbout Adel > > > > -- > Abbout Adel > -- Abbout Adel