The unit of current of kwant.operator.Current
Dear Kwant users, I just have a question for the unit of the Kwant output current, I think there are 2 ways to calculate the current value: 1. By integrating the conductance data: for specific, for the conductance generated the code below: ==================================================== for ie in range(-50,50): energy = ie * 0.01 smatrix = kwant.smatrix(syst, energy) energies.append(energy) data.append(smatrix.transmission(1,0)) ==================================================== according to the manul, the energy of smatrix.transmission(1,0) is e^2/h, and since I buildup the system with the Hamiltonian with the unit of "hartree" I think the energy that I give to kwant.smatrix(syst,energy) is also hartree. I think if I want to get the current, according to eq.10 of the Kwant paper, I should change the "conductance-energy" data to "conductance-voltage" data and then directly integrate it. 2. By using kwant.operator.Current with the script below: ==================================================== wf = kwant.wave_function(syst,energy=-0.25) J = kwant.operator.Current(syst,where=[(syst.sites[0],syst.sites[1]),(syst.sites[1],syst.sites[2])],sum=True) current = sum(J(p) for p in wf(0)) ==================================================== I'm trying to calculate the total current at a certain "bias energy" (-0.25 hartree, since I build the system with Hamiltonian in unit of hartree) but I'm not quite clear with the unit of the output current. Besides, is the current calculated by the second method should be equal to the first method? Thanks in advance for your help. Hang Zang
Dear Zang, Your question is not well elaborated. If you are talking about the unit of the current, the only thing you need to get that is that the wavefunctions in kwant are normalized in a way to get a flux of current equal to one. Example: 1D uniform system psi=A exp(i k x) The analytical formula for current (textbooks) will give: J= |A|^2 h_bar k/m kwant uses the choice A=1/sqrt(v) so that J=1 (because v=h_bar k/m). If you are talking about the total current flowing in a lead due to a bias, you need to do an integration of the transmission using Fermi Dirac distributions as described in literature. I hope this helps, Adel On Thu, Jun 27, 2019 at 8:11 PM Zang, Hang <zanghang@email.gwu.edu> wrote:
Dear Kwant users,
I just have a question for the unit of the Kwant output current, I think there are 2 ways to calculate the current value:
1. By integrating the conductance data: for specific, for the conductance generated the code below: ==================================================== for ie in range(-50,50): energy = ie * 0.01 smatrix = kwant.smatrix(syst, energy) energies.append(energy) data.append(smatrix.transmission(1,0)) ==================================================== according to the manul, the energy of smatrix.transmission(1,0) is e^2/h, and since I buildup the system with the Hamiltonian with the unit of "hartree" I think the energy that I give to kwant.smatrix(syst,energy) is also hartree.
I think if I want to get the current, according to eq.10 of the Kwant paper, I should change the "conductance-energy" data to "conductance-voltage" data and then directly integrate it.
2. By using kwant.operator.Current with the script below: ==================================================== wf = kwant.wave_function(syst,energy=-0.25) J = kwant.operator.Current(syst,where=[(syst.sites[0],syst.sites[1]),(syst.sites[1],syst.sites[2])],sum=True) current = sum(J(p) for p in wf(0)) ==================================================== I'm trying to calculate the total current at a certain "bias energy" (-0.25 hartree, since I build the system with Hamiltonian in unit of hartree) but I'm not quite clear with the unit of the output current.
Besides, is the current calculated by the second method should be equal to the first method?
Thanks in advance for your help. Hang Zang
-- Abbout Adel
participants (2)
-
Abbout Adel
-
Zang, Hang