Hello: Im simulating a nanotube with this hamiltonian: ns = {'hdiag':[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,-1]], 'hA1':[[0,1,0,0],[1,0,0,0],[0,0,0,-1],[0,0,-1,0]], 'hA2r':[[0,0,0,1],[0,0,1,0],[0,0,0,0],[0,0,0,0]], 'hA2s':[[0,0,0,0],[0,0,0,0],[0,1,0,0],[1,0,0,0]] } ham=""" (C_0+C_1*k_z**2+C_2*(k_x**2+k_y**2))*identity(4)+(M_0+M_1*k_z**2+M_2*(k_x**2+k_y**2))*hdiag + (B_0*k_z)*hA1 + (1/sqrt(2)*(1+1j)*A_0*(k_x-1j*k_y))*hA2r + (1/sqrt(2)*(1-1j)*A_0*(k_x+1j*k_y))*hA2s """ ham= kwant.continuum.sympify(ham,ns) and this shape: def cuboid_shape(pos): x, y, z = pos return 0 <= x < Lx/2 and abs(y) <= R and abs(z) <= np.sqrt(R**2-y**2) When using : lat = kwant.lattice.general([(1, 0, 0),(0, 1, 0),(0, 0, 1)], norbs=4) syst = kwant.Builder() template = kwant.continuum.discretize(ham, coords =['x','y','z'], grid=a) syst.fill(template, cuboid_shape,(0,0,0)) I get this weird error that all the sites have been deleted because an exception with fill(); and i can't seem to find a similar error anywhere on the internet. Any ideas? Kind Regards Alejandro Álvarez Chico
Hi Alejandro, Please see the full traceback message, it describes that the problem is in the shape function. The documentation of Builder.fill states that the shape function has to accept sites are arguments, and you instead assume that the function takes a real space position instead. Hope that this helps, Anton On Thu, 27 Apr 2023 at 16:26, Alejandro Alvarez Chico <alealv11@ucm.es> wrote:
Hello:
Im simulating a nanotube with this hamiltonian: ns = {'hdiag':[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,-1]], 'hA1':[[0,1,0,0],[1,0,0,0],[0,0,0,-1],[0,0,-1,0]], 'hA2r':[[0,0,0,1],[0,0,1,0],[0,0,0,0],[0,0,0,0]], 'hA2s':[[0,0,0,0],[0,0,0,0],[0,1,0,0],[1,0,0,0]] }
ham="""
(C_0+C_1*k_z**2+C_2*(k_x**2+k_y**2))*identity(4)+(M_0+M_1*k_z**2+M_2*(k_x**2+k_y**2))*hdiag + (B_0*k_z)*hA1 + (1/sqrt(2)*(1+1j)*A_0*(k_x-1j*k_y))*hA2r + (1/sqrt(2)*(1-1j)*A_0*(k_x+1j*k_y))*hA2s
""" ham= kwant.continuum.sympify(ham,ns) and this shape:
def cuboid_shape(pos): x, y, z = pos return 0 <= x < Lx/2 and abs(y) <= R and abs(z) <= np.sqrt(R**2-y**2)
When using :
lat = kwant.lattice.general([(1, 0, 0),(0, 1, 0),(0, 0, 1)], norbs=4) syst = kwant.Builder() template = kwant.continuum.discretize(ham, coords =['x','y','z'], grid=a) syst.fill(template, cuboid_shape,(0,0,0))
I get this weird error that all the sites have been deleted because an exception with fill(); and i can't seem to find a similar error anywhere on the internet. Any ideas?
Kind Regards
Alejandro Álvarez Chico
Thank you so much, it was driving me crazy. El jue, 27 abr 2023, 17:42, Anton Akhmerov <anton.akhmerov+kd@gmail.com> escribió:
Hi Alejandro,
Please see the full traceback message, it describes that the problem is in the shape function. The documentation of Builder.fill states that the shape function has to accept sites are arguments, and you instead assume that the function takes a real space position instead.
Hope that this helps, Anton
On Thu, 27 Apr 2023 at 16:26, Alejandro Alvarez Chico <alealv11@ucm.es> wrote:
Hello:
Im simulating a nanotube with this hamiltonian: ns = {'hdiag':[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,-1]],
'hA1':[[0,1,0,0],[1,0,0,0],[0,0,0,-1],[0,0,-1,0]],
'hA2r':[[0,0,0,1],[0,0,1,0],[0,0,0,0],[0,0,0,0]],
'hA2s':[[0,0,0,0],[0,0,0,0],[0,1,0,0],[1,0,0,0]] }
ham="""
(B_0*k_z)*hA1 + (1/sqrt(2)*(1+1j)*A_0*(k_x-1j*k_y))*hA2r + (1/sqrt(2)*(1-1j)*A_0*(k_x+1j*k_y))*hA2s
""" ham= kwant.continuum.sympify(ham,ns) and this shape:
def cuboid_shape(pos): x, y, z = pos return 0 <= x < Lx/2 and abs(y) <= R and abs(z) <= np.sqrt(R**2-y**2)
When using :
lat = kwant.lattice.general([(1, 0, 0),(0, 1, 0),(0, 0, 1)], norbs=4) syst = kwant.Builder() template = kwant.continuum.discretize(ham, coords =['x','y','z'], grid=a) syst.fill(template, cuboid_shape,(0,0,0))
I get this weird error that all the sites have been deleted because an exception with fill(); and i can't seem to find a similar error anywhere on
(C_0+C_1*k_z**2+C_2*(k_x**2+k_y**2))*identity(4)+(M_0+M_1*k_z**2+M_2*(k_x**2+k_y**2))*hdiag + the internet. Any ideas?
Kind Regards
Alejandro Álvarez Chico
participants (2)
-
Alejandro Alvarez Chico
-
Anton Akhmerov