Good day

I am trying to make a simple 3D geometry; a cylinder. Now, the only tutorial available for 3D is https://kwant-project.org/doc/1.0/tutorial/tutorial6#d-example-zincblende-structure so there is a chance my problems come from that.

The thing is that I cannot seem to attach any leads. The scattering region code works just fine, but when I try to attach the leads I get the error

Site family <unnamed Monatomic lattice, vectors [0.0 1.0 1.0], [1.0 0.0 1.0], [1.0 1.0 0.0], origin [0.0 0.0 0.0]> does not have commensurate periods with symmetry <kwant.lattice.TranslationalSymmetry object at 0x00000000093B17F0>.

The error is not completely opague of course; something seems to be problematic about the lattice vectors and the proposed symmetry. For that it is perhaps good to include the full code:

def make_system(a=1, t=1.0, W=10, L=5, r2=20):
lat = kwant.lattice.general([(0, a, a), (a, 0, a), (a, a, 0)])
sys = kwant.Builder()

def ring(pos):
(x, y,z) = pos
rsq = x ** 2 + y ** 2
return rsq < r2 ** 2 and 0 <= z < L

sys[lat.shape(ring, (1, 1,1))] = 4 * t
sys[lat.neighbors()] = -t

sym_lead = kwant.TranslationalSymmetry((0, 0,-a))
lead = kwant.Builder(sym_lead)

def lead_shape(pos):
(x, y,z) = pos
rsq = x ** 2 + y ** 2
return rsq < r2 ** 2

lead[lat.shape(lead_shape, (0, 0,0))] = 4 * t
lead[lat.neighbors()] = -t

sys.attach_lead(lead)
sys.attach_lead(lead.reversed())

return sys



I personally do not see what is wrong with this, especially as the scattering region looks fine without the leads. According to the error there is something wrong with the lattice vectors themselves? Should I change them in some way? 
I don't care about any particular structure here really, I am just looking for the 3D equivalent of the square lattice and according to the source code that is defined as

def square(a=1, name=''):
"""Make a square lattice."""
return Monatomic(((a, 0), (0, a)), name=name)

so I figured my definition should work for 3D.

Could someone point out the obvious mistake I am making?