Dear Shivang,

You must supply to the hamiltonian_submatrix extra arguments that
onsite expects. Inspecting the error message in more detail would
reveal that. In order to figure out how to provide the extra arguments
to hamiltonian_submatrix, please consult the documentation.

Best,
Anton
On Thu, Jul 5, 2018 at 7:18 PM Shivang Agarwal
<[email protected]> wrote:
>
> Hello All,
>
> I want to obtain the hamiltonian for my system, for which I am using the 
> sys.hamiltonian_submatrix() command, but I get the following error.
>
> UserCodeError: Error occurred in user-supplied value function "onsite".
>
> Below is the code that I am using.
>
> lat = kwant.lattice.honeycomb(a = a)
> p, q = lat.sublattices
>
> def make_system():
>
>     def hopping(sitei, sitej, phi, salt):
>         xi, yi = sitei.pos
>         xj, yj = sitej.pos
>         return -t * np.exp(-0.5j * phi * (xi - xj) * (yi + yj))
>
>     def onsite(site, phi, salt):
>         x, y = site.pos
>         return 0
>
>     def central_region(pos):
>         x, y = pos
>         return abs(x) < 2*a and abs(y) < 3*a
>
>     sys = kwant.Builder()
>     sys[lat.shape(central_region, (0, 0))] = onsite
>     sys[lat.neighbors()] = hopping
>
>     sym = kwant.TranslationalSymmetry((-a, 0))
>     lead = kwant.Builder(sym)
>     lead[lat.shape(lambda s: abs(s[1]) < 2*a, (0, 0))] = 0
>     lead[lat.neighbors()] = hopping
>
>     sys.attach_lead(lead)
>     sys.attach_lead(lead.reversed())
>
>     return sys.finalized()
>
> sys = make_system()
> sparse_mat = sys.hamiltonian_submatrix()  ----> Throws the error
>
> What confuses me is that the code works fine (when I do further calculations 
> on sys) if I comment the hamitonian_submatrix() command but throws up the 
> error otherwise. That made me think that the code itself should be correct, 
> but I could not figure out why that line gives an error.
>
> I would be glad if someone can help me out with the same. Any help will be 
> much appreciated!
>
> Sincerely,
> Shivang Agarwal
>
> --
> Shivang Agarwal
> Junior Undergraduate
> Discipline of Electrical Engineering
> IIT Gandhinagar
>
> Contact: +91-9869321451

Reply via email to