Dear Kwant community,

I am a physics student and I am approaching to Kwant to solve simple
problems of scattering.
I am new in Kwant and, for this reason, I'm trying to use Kwnat for basic
problems of scattering.
The most simple problem in my mind is the scattering of a plane-wave (1
dimension) from the left of a potential barrier. If we now suppose the
potential barrier is 'zero' everywhere, the scattering matrix, according to
the scattering theory, should be 'S={{0,1},{1,0}}'.
If I try to compute the reflection and transmission coefficient, I obtained
the correct values (1 for reflection and 0 for transmission). But it occurs
only for some energies. For example in the code I attached, if I put the
value of '10' in  'S=kwant.solvers.default.smatrix(syst,10)' I obtaine for
reflection and transmission the value of '0'. Where is my errors? And, is
there a way to print the entire elements of the scattering matrix ?

Yours sincerely

Lorenzo Bagnasacco
#!/usr/bin/env python
# coding: utf-8

# In[1]:


get_ipython().system('pip install kwant')
get_ipython().system('pip install SymPy')


# In[2]:


import kwant
from matplotlib import pyplot
import numpy as np
import kwant.continuum
import math


# In[3]:


template1 = kwant.continuum.discretize('k_x * k_x')
print(template1)


# In[4]:


syst = kwant.Builder()


# In[5]:


a=1
lat=kwant.lattice.square(a)


# In[6]:


t=1
leng=20


# In[7]:


for i in range(leng):
    #On-site Hamiltonian
    syst[lat(i,0)] = 2 * t
    #Hopping in x-direction
    if i > 0:
        syst[lat(i,0),lat(i-1,0)] = - t


# In[8]:


kwant.plot(syst);


# In[9]:


sym_left_lead = kwant.TranslationalSymmetry((-a,0))
left_lead=kwant.Builder(sym_left_lead)
left_lead[lat(-1,0)]=  2 * t
left_lead[lat(-1,0),lat(0,0)]= - t


# In[10]:


kwant.plot(left_lead);


# In[11]:


syst.attach_lead(left_lead)
kwant.plot(syst);


# In[12]:


sym_right_lead = kwant.TranslationalSymmetry((a,0))
right_lead=kwant.Builder(sym_right_lead)
right_lead[lat(leng,0)]= 2 * t
right_lead[lat(leng,0),lat(leng-1,0)]= - t


# In[13]:


kwant.plot(right_lead);


# In[14]:


syst.attach_lead(right_lead)
kwant.plot(syst);


# In[15]:


syst=syst.finalized()


# In[20]:


S=kwant.solvers.default.smatrix(syst,10)


# In[21]:


trans = []
refl = []
trans.append(S.transmission(1, 0))
refl.append(S.transmission(0, 0))


# In[22]:


trans


# In[23]:


refl


# In[ ]:




Reply via email to