Dear Anton,
Must be some misunderstanding in definitions.
I assumed that the first defined lead has index 0,
then lead 0 is left lead (-a, 0) i.e. left part of letter T,
which is turned clockwise by 90 deg.
Bottom lead (0, -a) has index 1 and top lead,
(bottom.reversed) has index 2.
The above agrees with the transmission calculations
which is _the same_ for (1 <--- 0 ) and (2 <--- 0) configurations
and the shape of such transmission agrees with
the literature data.
Regards,
Jerzy
----- Original Message -----
From: "Anton Akhmerov"
Dear Jerzy,
The that you have defined shows the spin density in the system, due to the modes coming from the top lead (lead 0). The density of states on the other hand is due to the level broadening from all of the leads. This is the origin of the asymmetry between the spin densities.
Best, Anton
On Thu, Oct 3, 2013 at 9:14 AM, Jerzy Wrobel
wrote: Hi Anton, You wrote:
... the spin is still defined, and the two degrees of freedom correspond to local spin polarizations up or down...
Exactly, therefore I have prepared the following function which, I think, plots averages
, and at each site: def plot_Si(sys, energy, n_lead): # Compute wave function psi = kwant.wave_function(sys, energy) psi_n = psi(n_lead).sum(axis=0) # Calculate <Si> per site Nsites = psi_n.shape[0] / 2 sx = zeros((Nsites,)) sy = zeros((Nsites,)) sz = zeros((Nsites,)) psi_i = array([[0.0], [0.0]])
for i in xrange(Nsites): psi_i = array([[psi_n[i * 2]], [psi_n[i * 2 + 1]]]) sx[i] = abs(dot(psi_i.conj().T, dot(sigma_x, psi_i)))[0, 0] sy[i] = abs(dot(psi_i.conj().T, dot(sigma_y, psi_i)))[0, 0] sz[i] = abs(dot(psi_i.conj().T, dot(sigma_z, psi_i)))[0, 0] # Plot kwant.plotter.map(sys, sx, num_lead_cells=5) kwant.plotter.map(sys, sy, num_lead_cells=5) kwant.plotter.map(sys, sz, num_lead_cells=5)
It seems that it works for a 2-terminal quantum wire (like the one defined in spin_orbit.py). For example with just one transmitted mode and \alpha=0.5, ez = 0.0, a nice "snapshot" of the spin precession is obtained (run the attached spin_orbit_jw1.py script).
However, there must be something wrong with this function, since for 3-terminal T-shaped device (like the one defined in spin_orbit_T_jw1.py) the
patterns, without spin-orbit interaction (\alpha=0.), are asymmetrical. This is strange, since the device is symmetric along lead axis, from which the wave function is emanated. There is no such a problem for 2-terminal wire, in that case each looks much like ldos for \alpha=0. Any hint what is wrong will be appreciated. I suspect the mysterious psi_n = psi(n_lead).sum(axis=0) command, since psi(n_lead) consist of two rows of length 2Nsites, even for just one (spin degenerate) mode. What is stored in each row?
Regards, Jerzy P.S. I use python27 under win8.
__________ Informacja programu ESET Endpoint Antivirus, wersja bazy sygnatur wirusów 8873 (20131003) __________
Wiadomooæ zosta³a sprawdzona przez program ESET Endpoint Antivirus.
__________ Informacja programu ESET Endpoint Antivirus, wersja bazy sygnatur wirusów 8873 (20131003) __________ Wiadomoæ zosta³a sprawdzona przez program ESET Endpoint Antivirus. http://www.eset.pl lub http://www.eset.com