# Re: [Kwant] Symmetry and leads

```Dear Anton,

```
```
I actually found a slightly different solution, which I shall document here in case it helps anyone else in the future.
```
```
My idea is to define a different unit cell for the graphene lattice which allows lattice vectors to be defined in the x and y real space directions. So, instead of using the standard graphene unit cell (which I shall denote with a symbol | which is supposed to indicate the bond joining the two carbon atoms) I used a unit cell that looks like \_/ which joins four carbon atoms in a short chain. Repeating this unit cell will generate a graphene flake with armchair edges along the horizontal direction, and zigzag edges along the vertical direction.
```
```
If a is the length of the lattice vector of the original (two-atom) unit cell, then the lattice vectors of the new unit cell are:
```(sqrt(3)*a,0), and (0,a).

The positions of the four atoms within the unit cell are:
(0,a/2),
(a/(2*sqrt(3), 0),
(sqrt(3)*a/2, 0), and
(2*a/sqrt(3),a/2).

```
This can be easily defined using the kwant.lattice.general() method as shown in the examples in the documentation. When leads are attached to the left and right ends (with translational symmetry (±sqrt(3)*a,0)) of a rectangular scattering region formed in this way, they do so in the vertical direction, as desired.
```
Hope that helps.

David

On 23/10/14 19:47, Anton Akhmerov wrote:
```
```Dear David,

Currently a Kwant symmetry stores the extra directions that describe
how it handle various lattices. If you don't do anything, the choice
of the extra directions happens automatically, and a Bravais lattice
vector is chosen. However you can manually override this by using the
add_site_family method of the TranslationalSymmetry (see
for details). I know several people have used this to solve exactly
the problem that you currently encounter.

Best,
Anton

On Thu, Oct 23, 2014 at 4:40 PM, David Abergel
<david.aber...@nordita.org> wrote:
```
```Dear all,

I am having a problem defining a system which matches what I want.

I start by defining a rectangular graphene lattice of size 0<=x<L in the x
direction and 0<=x<W in the y direction. (By "rectangular" I mean in the
real space coordinates, not the crystallographic coordinates.)

I want to attach a lead to the left-had end of this rectangle, going to
minus infinity. Therefore, I define a lead with translational symmetry
(-1,0) and the appropriate hopping. I attach the lead and plot the system.

When I plot the system, I find that the lead has been attached along the
(0,1) crystallographic direction (so, that is along the (1/2, sqrt(3)/3)
real space vector). A triangle of extra sites have been added for x<0 (real
space) so that the total shape of the scattering region is now not rectangular.

If I attach another lead with lead.reversed(), a similar thing happens on
the right of the sample so that my scattering region is now a parallelogram.

As I understand it, this should not affect the physics in any way, since the
lead is semi-infinite. But, if I want to draw pictures, plot functions over
the scattering region, and gain physical understanding, it is a bit of a
pain. So, my question is whether there is any way to make the lead attach
along the (0,1) real space direction (which is the same as the (-1,2)
crystallographic direction) and yet maintain the (-1,0) translational symmetry?

If you require a sample program which reproduces this behavior then I can
easily provide that, but I thought I should not extend an already long post
unnecessarily.

```