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

Reply via email to