Dear Lorenzo,
Of course there is. It is straightforward, thanks to Kwant. To do so you
need two functions to be defined.
1- you have to define the onsite as a function.
2- you have to define a family_color function which has to depend on the
onsite function.
3-Active family_color in kwant.plot().
To make this simple to you, kindly see the following examples (p-n-junction)
best, Adel

import kwant
import numpy as np
from math import sqrt
import matplotlib.pyplot as plt
from types import SimpleNamespace
from ipywidgets import interact
from mpl_toolkits import mplot3d
import warnings
warnings.filterwarnings('ignore')


def onsite_1(site):
    x,y = site.pos
    if x>0:
        return 5
    else:
        return 0
### --------- Onsite-------
def family_color_1(site):
    x,y = site.pos
    return onsite_1(site)

def onsite_2(site):
    x,y = site.pos
    if abs(x)<4:
        return 5
    elif x>4:
        return 2.5
    else:
        return 0
### --------- Onsite-------
def family_color_2(site):
    x,y = site.pos
    return onsite_2(site)


lat = kwant.lattice.honeycomb(a=1, norbs=1, name=["a", "b"])
a, b =lat.sublattices

def rect(pos):
    x, y = pos
    return abs(x) < 10 and abs(y) < 5
sys1=kwant.Builder()
sys1[lat.shape(rect, (1, 1))] = onsite_1
sys1[lat.neighbors(1)] = -1

sys2=kwant.Builder()
sys2[lat.shape(rect, (1, 1))] = onsite_2
sys2[lat.neighbors(1)] = -1

kwant.plot(sys1, site_color=family_color_1, site_size=None, cmap='jet',
colorbar=True,)
plt.show()
kwant.plot(sys2, site_color=family_color_2, site_size=None, cmap='jet',
colorbar=True,)
plt.show()

Le mar. 17 mai 2022 à 11:22, Lorenzo BAGNASACCO <lorenzo.bagnasa...@sns.it>
a écrit :

> Dear Kwant community,
>
> I am a physics student and I am approaching to Kwant to solve simple
> problems of scattering. For example, I created a 2D discrete potential. The
> potential has two different values: "V0" and "0".
> When I plot the system, using the command "kwant.plot(syst)", I obtain the
> plot with only light-blue colour. There is a command to plot the discrete
> potential with two (or more) different colours (in my case one colour for
> "V0", and another one for "0")?
>
> Yours Sincerely
>
> Lorenzo Bagnasacco
>

Reply via email to