Dear Sir,
I am a PhD student of Hong Kong University of Science and Technology. I
want to use KWANT to caculate Hall resistance of a Hall bar structure.We
can get the conductance between 6 electrodes, but how to get hall
resistance? Can you give me some help? Thank you very much.
Best Regards,
Zhang Bing

> Thank you very much for your help. But I have two questions about your
> advice. One question is why we need to correct digonal element to make rows
> and columns sum to zero? Do you mean digonal element of conductance matrix
> is not well defined?
The transmission, as returned by Kwant is just the norm of the
corresponding block of the scattering matrix. In order to get the
conductance matrix from that, one needs to subtract the number of
modes from the diagonal entries. This is achieved by the line cond -=
np.diag(cond.sum(axis=0)) in the code snippet that I sent.
> Another question is why we need to eliminate one row
> and one column? Can we just solve np.linalg.solve(cm, [1, 0, -1,0]) to get
> V_1,V_2,V_3,V_4, where cm is 4x4 conductance matrix.
The conductance matrix has a zero eigenvalue, so the solution to the
full problem is not unique (you can add a constant to every potential,
and currents won't change). On the other hand, the currents are not
independent, since the total current has to equal to zero. Eliminating
a row and a column takes care of both constraints.
Best,
Anton
>
> Best Regards,
> Zhang Bing
>
>
> on 2014/4/27 21:03, Anton Akhmerov wrote:
>>
>> Dear Zhang Bing,
>>
>> Please take a look at the following bit of code that calculates
>> nonlocal resistance in a 4-terminal device from a Kwant scattering
>> matrix. (Taken from the Kwant example to appear with the revised
>> version of Kwant paper.)
>>
>> # First we calculate the conductance matrix given the scattering
>> matrix S.
>> cond = np.array([[s.transmission(i, j) for j in xrange(n)] for i in
>> xrange(n)])
>> # Correct the reflection blocks, so that rows and columns sum to
>> zero.
>> cond -= np.diag(cond.sum(axis=0))
>>
>> # In order to calculate the nonlocal conductance we eliminate one row
>> and
>> # one column from the condutcance matrix. This amounts to setting the
>> # corresponding voltage to zero and using current conservation to
>> calculate
>> # the current through the last terminal.
>> cm = conductance_matrix(sys, energy, [args])[:-1, :-1]
>> # We then set the current to be 1 in the lead 0, -1 in lead 2, and
>> # calculate the voltage in lead 1 (so V_1 - V_3 since V_3 = 0).
>> nonlocal_resistance = np.linalg.solve(cm, [1, 0, -1])[1]
>>
>> Generalization to a 6-terminal case should be straightforward.
>>
>> Best regards,
>> Anton Akhmerov
>>
>> On Sat, Apr 26, 2014 at 6:14 AM, ZHANG Bing <bzhangac(a)ust.hk> wrote:
>>>
>>> Dear Sir,
>>>
>>> I am a PhD student of Hong Kong University of Science and Technology. I
>>> want to use KWANT to caculate Hall resistance of a Hall bar structure.We
>>> can get the conductance between 6 electrodes, but how to get hall
>>> resistance? Can you give me some help? Thank you very much.
>>>
>>> Best Regards,
>>> Zhang Bing
>>>
>

When trying to install kwant on OS X Mavericks I get the following error:
-=[*]=-/usr/local/Cellar$ brew install tinyarray
==> Downloading http://downloads.kwant-project.org/tinyarray/tinyarray-1.0.2.tar
Already downloaded: /Library/Caches/Homebrew/tinyarray-1.0.2.tar.gz
Warning: Formula#python is deprecated and will go away shortly.
==> python setup.py install --prefix=/usr/local/Cellar/tinyarray/1.0.2
Error: can't convert PythonDependency into String
Please report this bug:
https://github.com/Homebrew/homebrew/wiki/troubleshooting
/usr/local/Library/Homebrew/formula.rb:531:in `basename'
/usr/local/Library/Homebrew/formula.rb:531:in `system'
/usr/local/Library/Taps/michaelwimmer-kwant/tinyarray.rb:11:in `install'
/usr/local/Library/Homebrew/build.rb:174:in `install'
/usr/local/Library/Homebrew/formula.rb:267:in `brew'
/usr/local/Library/Homebrew/formula.rb:587:in `stage'
/usr/local/Library/Homebrew/resource.rb:62:in `unpack'
/usr/local/Library/Homebrew/extend/fileutils.rb:21:in `mktemp'
/usr/local/Library/Homebrew/resource.rb:59:in `unpack'
/usr/local/Library/Homebrew/resource.rb:52:in `stage'
/usr/local/Library/Homebrew/formula.rb:585:in `stage'
/usr/local/Library/Homebrew/formula.rb:262:in `brew'
/usr/local/Library/Homebrew/build.rb:151:in `install'
/usr/local/Library/Homebrew/build.rb:45:in `main'
/usr/local/Library/Homebrew/build.rb:12
/usr/local/Library/Taps/michaelwimmer-kwant/tinyarray.rb:10
I get the same error with the apple python as well as with the homebrew one. Any suggestions?
Thank you
Sebastian

Hi,
I am trying to construct a 3D SrTiO3 structure, however there is only one
example in online document that is 3D. I can create the structure and attach
two leads, but I am not sure how to define the hopping energy between atoms.
Here is how I create the 3D structure by using lattice.general:
lat = kwant.lattice.general([(0, 0, 1),(0, 1, 0), (1, 0, 0)],
[(0, 0, 0),(0.5,0.5,0),(0.5,0,0.5),(0,0.5,0.5),
(0.5,0.5,0.5)])
a,c1,c2,c3,b = lat.sublattices
sys = kwant.Builder()
sys[lat.shape(cuboid_shape, (0, 0, 0))] = 4 * t
The last code is how I define the energy for the atoms, but I am not sure how
to define the hopping energy between atoms here, because there are 8 1/8 Ti, 6
1/2 O and 1 Sr in this unit cell, what kind of function should I use here?
Best,
Shicheng Lu
Department of Physics & Astronomy
University of Pittsburgh

Hello,
I am new to the project, and I try to launch the first test.
Unfortunately when I do : python -c 'import kwant; kwant.test()', that
doesn't work :
*ImportError: cannot import name lapack*
but I have already installed liblapack-dev, I'am on Debian.
Thank you
Loic

Hello,
I am an undergraduate student who is new to KWANT and condensed matter
physics as a whole. I was wondering if anyone had some code meant to
simulate the tight binding model for a topological insulator or
superconductor, or could point me in the right direction? I have a paper
that is helping me systematically construct the Hamiltonian analytically
for different classes of TI's and TSC's, but I'm finding it hard to code.
Maybe I just don't understand it well enough. I'm sorry if I'm stating
something dumb or trivial.
Thank you for your time.