Hi Ali,

A quick reply from my side. This

hamiltonian = semicon.models.foreman(
    components=['foreman'],
    bands=bands,
    coords='xz',
)

specify what will be spatial dependence of the parameters in the symbolic
Hamiltonian that is used.
As far as I remember, two_deg_params provides you a single coordinate
dependent parameters.
I suggest you either create parameter functions returned by two_deg_params
by hand or
try to set coords of semicon.models.foreman to the single coordinate along
which you want to
vary your parameters.

I will be able to look more in details into that next week.

Regards,
Rafal



--
Rafał Skolasiński
Software Engineer

GitHub: https://github.com/RafalSkolasinski
Kwant GitLab: https://gitlab.kwant-project.org/r-j-skolasinski


On Tue, 4 Dec 2018 at 16:14, Ali Asgharpour <asgharp...@sabanciuniv.edu>
wrote:

> Thanks for the feedback! If you find the bug, would you please let me
> know? Thanks in advance. By the way, I am also trying to code it myself
> from the beginning. Thanks again.
>
> Best regards,
>
> Ali
>
> On Tue, Dec 4, 2018 at 6:57 PM Joseph Weston <joseph.westo...@gmail.com>
> wrote:
>
>> Thanks for the information!
>>
>> Thank you for your quick response. I am using kwant 1.3.3 version and
>> semicon 0.1.0 version. I think the error is related to calling parameters
>> function which are stored as a tuple. By the way, this is the error I
>> encountered:
>>
>> TypeError                                 Traceback (most recent call 
>> last)/home/ali/anaconda3/lib/python3.6/site-packages/kwant/builder.py in 
>> hamiltonian(self, i, j, params, *args)   1995                     try:-> 
>> 1996                         value = value(self.sites[i], **params)   1997   
>>                   except Exception as exc:
>> <string> in onsite(site, Delta_0, E_0, E_v, P, gamma_0, gamma_1, gamma_2, 
>> hbar, k_y, m_0)
>> TypeError: __call__() takes 2 positional arguments but 3 were given
>>
>> The above exception was the direct cause of the following exception:
>> UserCodeError                             Traceback (most recent call 
>> last)<ipython-input-5-9c34d828bfe1> in <module>()     59     # compute the 
>> scattering matrix at a given energy     60     p = {'k_y': 0, 
>> **two_deg_params}---> 61     smatrix = kwant.smatrix(syst, energy, params=p) 
>>     62      63     # compute the transmission probability from lead 0 to
>> /home/ali/anaconda3/lib/python3.6/site-packages/kwant/solvers/common.py in 
>> smatrix(self, sys, energy, args, out_leads, in_leads, check_hermiticity, 
>> params)    370         linsys, lead_info = self._make_linear_sys(syst, 
>> in_leads, energy, args,    371                                               
>>     check_hermiticity, False,--> 372                                         
>>           params=params)    373     374         kept_vars = 
>> np.concatenate([coords for i, coords in
>> /home/ali/anaconda3/lib/python3.6/site-packages/kwant/solvers/common.py in 
>> _make_linear_sys(self, sys, in_leads, energy, args, check_hermiticity, 
>> realspace, params)    162         lhs, norb = 
>> syst.hamiltonian_submatrix(args, sparse=True,    163                         
>>                        return_norb=True,--> 164                              
>>                   params=params)[:2]    165         lhs = getattr(lhs, 'to' 
>> + self.lhsformat)()    166         lhs = lhs - energy * 
>> sp.identity(lhs.shape[0], format=self.lhsformat)
>> kwant/_system.pyx in kwant._system.hamiltonian_submatrix()
>> /home/ali/anaconda3/lib/python3.6/site-packages/kwant/builder.py in 
>> hamiltonian(self, i, j, params, *args)   1996                         value 
>> = value(self.sites[i], **params)   1997                     except Exception 
>> as exc:-> 1998                         _raise_user_error(exc, value)   1999  
>>                else:   2000                     try:
>> /home/ali/anaconda3/lib/python3.6/site-packages/kwant/builder.py in 
>> _raise_user_error(exc, func)   1883     msg = ('Error occurred in 
>> user-supplied value function "{0}".\n'   1884            'See the upper part 
>> of the above backtrace for more information.')-> 1885     raise 
>> UserCodeError(msg.format(func.__name__)) from exc   1886    1887
>> UserCodeError: Error occurred in user-supplied value function "onsite".
>> See the upper part of the above backtrace for more information.
>>
>>
>> this certainly looks like a bug in semicon. I've managed to reproduce the
>> bug, but I don't understand why it occurs. I inspected what was happening
>> using the Python debugger and it seems to me that everything should work
>> (but clearly it doesn't!).
>>
>>
>> Unfortunately the author of semicon is no longer working in academia, and
>> the semicon project is currently without a maintainer (and it's not even
>> v1.0!), so I am not sure what the best course of action is going forward.
>>
>>
>> Happy Kwanting,
>>
>>
>> Joe
>>
>

Reply via email to