Oops, never mind my remark about the documentation being incorrect! It was just because discretize_symbolic returns a tuple which you fed as a first argument to build_discretized.
On Fri, Mar 29, 2019 at 3:28 PM Bas Nijholt <basnijh...@gmail.com> wrote: > It seems like the documentation here > <https://gitlab.kwant-project.org/kwant/kwant/blob/fdd4674/kwant/continuum/discretizer.py#L263> > is wrong because it expects a dictionary. > > > I see that you do > > template = kwant.continuum.discretize_symbolic(hamiltonian) > t = kwant.continuum.build_discretized(template, coords = ('x','y','z')) > > However, discretize_symbolic returns two variables. Instead do: > > template, coods = kwant.continuum.discretize_symbolic(hamiltonian) > t = kwant.continuum.build_discretized(template, coords) > > The list of coods should be passed to discretize_symbolic. However, if > you omit it, it will be inferred from your Hamiltonian’s k_{x, y, z} > terms. > > Best, Bas > > On Fri, Mar 29, 2019 at 3:11 PM Naveen Yadav <naveengunwa...@gmail.com> > wrote: > >> Hi Bas, >> >> Thanks for your reply. >> >> I have used the same syntax. But it is showing an Attribute Error: 'tuple >> object has no attribute 'items' >> >> from __future__ import division >> import kwant >> import kwant.continuum >> import scipy.sparse.linalg >> import scipy.linalg >> import numpy as np >> import sympy >> from math import sin, cos, sqrt, pi >> import matplotlib.pyplot as plt >> hamiltonian = ("""k_x**2 + k_y**2 + k_z**2""") >> hamiltonian = kwant.continuum.sympify(hamiltonian) >> template = kwant.continuum.discretize_symbolic(hamiltonian) >> t = kwant.continuum.build_discretized(template, coords = ('x', 'y', 'z')) >> print(t) >> >> AttributeError Traceback (most recent call >> last)<ipython-input-12-9780451ce368> in <module> 11 hamiltonian = >> kwant.continuum.sympify(hamiltonian) 12 template = >> kwant.continuum.discretize_symbolic(hamiltonian)---> 13 t = >> kwant.continuum.build_discretized(template, coords = ('x','y','z')) 14 >> print(t) 15 hamiltonian >> /usr/local/lib/python3.6/dist-packages/kwant/continuum/discretizer.py in >> build_discretized(tb_hamiltonian, coords, grid_spacing, locals) 281 >> 282 with reraise_warnings():--> 283 for k, v in >> tb_hamiltonian.items(): 284 tb_hamiltonian[k] = sympify(v, >> locals) 285 >> AttributeError: 'tuple' object has no attribute 'items' >> >> What should I do. >> >> Naveen >> >> >> On Fri, Mar 29, 2019 at 5:37 PM Bas Nijholt <basnijh...@gmail.com> wrote: >> >>> Hi Naveen, >>> >>> In the documentation >>> <https://kwant-project.org/doc/dev/reference/generated/kwant.continuum.build_discretized> >>> you can see that coords require a sequence of strings, so for example: >>> >>> coords = ('x',) # for 1D >>> coords = ('x', 'y', 'z') # for 3D >>> >>> Best, Bas >>> >>> On Fri, Mar 29, 2019 at 12:59 PM Naveen Yadav <naveengunwa...@gmail.com> >>> wrote: >>> >>>> I want to know more about the builid_discretized(tb_hamiltonian, >>>> coords). >>>> I did not undersand what should be the syntax to write the coords.Could >>>> you please help me by sending an example code for writing coords? >>>> >>>> Thanks in Advance. >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> Naveen >>>> Department of Physics & Astrophysics >>>> University of Delhi >>>> 110007 >>>> >>> >> >> -- >> >> >> With Best Regards >> NAVEEN YADAV >> Ph.D Research Scholar >> Deptt. Of Physics & Astrophysics >> University Of Delhi. >> >