Dear Tavakkolidjawad,

Good day

Zinc blende and diamond have closely related structures. The key difference between zinc blende and diamond structure is that zinc blende has both zinc and sulfur atoms in its structure while diamond structure has only carbon atoms in its structure. Additionally, alternative example is graphene and h-BN (Hexagonal Boron Nitride) since both have the same lattice (honeycomb lattice), but for the h-BN, the Onsite_energy_of_B differ from the Onsite_ennergy_of_N that why we have a gap (masse term).

So what does this mean in your case. It means that we use the zinc blend lattice as defined in kwant tutorial (the exact code you have written down). Let as say

a1 , a2 = lat.sublattices

Here relevent_on_site_for_a1 = relevent_on_site_for_a2= Onsite

syst[a1.shape(cuboid_shape, (0, 0, 0))] = Onsite

syst[a2.shape(cuboid_shape, (0, 0, 0))] = Onsite

or simply use as was givene syst[lat.shape(cuboid_shape, (0, 0, 0))] = Onsite

However in the zinc blende structure, we have to be cerful since

relevent_on_site_for_a1 does not equal relevent_on_site_for_a2. For this purpose we write

syst[a1.shape(cuboid_shape, (0, 0, 0))] = relevent_on_site_for_a1

syst[a2.shape(cuboid_shape, (0, 0, 0))] = relevent_on_site_for_a2

## In the kwant example was left as None and is up to you to decide what to do.

You have also to care about the hopping since you have a 3D shape.

from matplotlib import pyplot

lat = kwant.lattice.general([(0, 0.5, 0.5), (0.5, 0, 0.5), (0.5, 0.5, 0)],

[(0, 0, 0), (0.25, 0.25, 0.25)], name=['a1', 'a2'])

a1, a2 = lat.sublattices

def make_cuboid(a=1.1, b=1.1, c=1.1):

def cuboid_shape(pos):

x, y, z = pos

return 0 <= x < a and 0 <= y < b and 0 <= z < c

syst = kwant.Builder()

syst[a1.shape(cuboid_shape, (0, 0, 0))] = 1 ## the same on-site foar a1 and b1

syst[a2.shape(cuboid_shape, (0, 0, 0))] = 1

syst[lat.neighbors()] = 1

return syst

def family_colors(site):

return 'r' if site.family == a1 else 'g'

### Conventional unit cell "FCC"

syst = make_cuboid(a=1.1, b=1.1, c=1.1)

kwant.plot(syst, site_size=0.18, site_lw=0.01, hop_lw=0.05,

site_color=family_colors)

pyplot.show()

Also, to see the unit cell of the system please see the following scryprt

#### To see the unit cell here the code

lat = kwant.lattice.general([(0, 0.5, 0.5), (0.5, 0, 0.5), (0.5, 0.5, 0)],

[(0, 0, 0), (0.25, 0.25, 0.25)])

a, b = lat.sublattices

def cuboid_shape(pos, a= 2, b = 2, c = 2):

x, y, z = pos

return 0 <= x < a and 0 <= y < b and 0 <= z < c

sym = kwant.TranslationalSymmetry(lat.vec((1, 0, 0)), lat.vec((0, 1, 0)), lat.vec((0, 0, 1)))

syst = kwant.Builder(sym)

syst[lat.shape(cuboid_shape, (0, 0, 0))] = 1

syst[lat.neighbors(1)] = 1

def wraparound_syst(syst):

return kwant.wraparound.wraparound(syst).finalized()

unit_cell = wraparound_syst(syst)

kwant.plot(unit_cell, site_size=0.2, site_lw=0.012)

pyplot.show()

Ref[1]: https://www.differencebetween.com/difference-between-zinc-blende-and-diamond-structure/

Hope was helpful

Regards, Adel

Le sam. 30 nov. 2019 à 07:15, tavakkolidjawad <tavakkolidjawad@ut.ac.ir> a écrit :

Hi dears

Based on the code for zincblende structure inside the Kwant website, I want to build a diamond lattice, but I don't know what I need to change in this code to create a diamond structure, also I need to create one lead for this structure.

can you help me?

Thank you in advance.

>>>import kwant

>>>from matplotlib import pyplot>>>lat = kwant.lattice.general([(0, 0.5, 0.5), (0.5, 0, 0.5), (0.5, 0.5, 0)],

[(0, 0, 0), (0.25, 0.25, 0.25)])

>>>a, b = lat.sublattices>>>def make_cuboid(a=15, b=10, c=5):

def cuboid_shape(pos):

x, y, z = pos

return 0 <= x < a and 0 <= y < b and 0 <= z < c>>>syst = kwant.Builder()

>>>syst[lat.shape(cuboid_shape, (0, 0, 0))] = None

>>>syst[lat.neighbors()] = None>>>return syst

>>>def main():

>>># the standard plotting style for 3D is mainly useful for

>>># checking shapes:

>>>syst = make_cuboid()>>>kwant.plot(syst)

>>># visualize the crystal structure better for a very small system

>>>syst = make_cuboid(a=1.5, b=1.5, c=1.5)>>>def family_colors(site):

return 'r' if site.family == a else 'g'>>>kwant.plot(syst, site_size=0.18, site_lw=0.01, hop_lw=0.05)#,site_color=family_colors)

>>>if __name__ == '__main__':

main()