Examples

This section contents examples of the graphene_flake package illustrating the properties of the pseudo Landau Levels (pLLs), created by inhomogeneous triaxial linear strain, for different zigzag-terminated flakes. The impact of the geometry on the degeneracy (number of states), the spatial support (sum of the probability densities of the states), and the appearance of localized states between pLLs introduced by vortex or vacancy-defect, is detailed.

Note

The A and B sublattices of the lattice figures are represented by:

_images/legend_lattice.png

The A and B sublattices of the spatial support are represented by:

_images/legend_intensity.png

Triaxial linear strain

First, let’s illustrate the effect of strain on the flake by considering different strengths of the strain.

Hexagonal flake

flake = tri_to_hexa_zz(sites_base=13,  sites_cut=5, t_1=1., t_2=1., t_3=1.)
flake.plt_lattice(s=150, lw=2, save=True)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain= strain_max_neg*3./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_neg*2./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_neg*1./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_pos*1./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_pos*2./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_pos*3./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.plt_show()

Unstrained flake

_images/lattice_N150_0,0.png

increasing negative strain

_images/lattice_hop_N150_-0,0833083333333.png _images/lattice_hop_N150_-0,166616666667.png _images/lattice_hop_N150_-0,249925.png

increasing positive strain

_images/lattice_hop_N150_0,0833083333333.png _images/lattice_hop_N150_0,166616666667.png _images/lattice_hop_N150_0,249925.png

Triangular flake

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=10, sites_cut=0, t_1=1., t_2=1., t_3=1.)
flake.plt_lattice(s=150, lw=2, save=True)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain= strain_max_neg*3./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_neg*2./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_neg*1./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_pos*1./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_pos*2./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.get_eig_lin_strain(strain= strain_max_pos*3./4., eig_vec=False, vortex=False)
flake.plt_lattice_hop(s=150, lw=2, save=True)
flake.plt_show()

Unstrained flake

_images/lattice_N144_0,0.png

increasing negative strain

_images/lattice_hop_N144_-0,047594047619.png _images/lattice_hop_N144_-0,0951880952381.png _images/lattice_hop_N144_-0,142782142857.png

increasing positive strain

_images/lattice_hop_N144_0,111086111111.png _images/lattice_hop_N144_0,222172222222.png _images/lattice_hop_N144_0,333258333333.png

Strained hexagonal flake

Let’s compare the spectrum of an unstrained and strained large flake (5400 sites, N=30 sites at each edge).

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=88, sites_cut=30, t_1=1., t_2=1., t_3=1.)
# unstrained flake
flake.get_eig_lin_strain(strain=strain_max_pos, eig_vec=False, vortex=False)
flake.plt_spec(ener_lim=[-1.5, 1.5], no_bins=101, save=True)
# strained flake
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain=strain_max_pos, eig_vec=False, vortex=False)
flake.plt_spec(ener_lim=[-1.5, 1.5], no_bins=101, save=True)

Unstrained flake

_images/spec_N5400_0,0.png _images/spec_histN5400_0,0.png

Maximal strained flake

_images/spec_N5400_0,0458770114943.png _images/spec_histN5400_0,0458770114943.png

The two distinct ways to represent the spectrum reveal the drastic changes introduced by the inhomogeneous strain. At low enough energy (E<1), highly degenerated states separated by gaps (pseudo Laudau levels) appear. The degeneracy of the pLLs can be obtained numerically: 6N for the 0th pLL and 3N-n for the nth pLL.

To analyze the spatial support of the pLLs, it is more convenient to consider a smaller flake (600 sites, N=10).

_images/lattice_N600_0,0.png _images/lattice_hop_N600_0,148048148148.png
from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=28, sites_cut=10, t_1=1., t_2=1., t_3=1.)
flake.plt_lattice(s=20, save=True)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain_max_pos, eig_vec=True, vortex=False)
flake.plt_lattice_hop(s=20, save=True)
flake.plt_spec(no_bins=41, ener_lim=[-2., 2.], plt_pola=True, save=True)
# Oth  pLL
flake.get_states_selec(e_min=-0.5, e_max=0.5)
flake.plt_states_selec(coef=100000, plt_bonds=True, plt_axis=False, save=True)
# 1st  pLL
flake.get_states_selec(e_min=0.8, e_max=0.9)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 2nd  pLL
flake.get_states_selec(e_min=0.9, e_max=1.35)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
flake.plt_show()
_images/spec_N600_0,148048148148.png

From left to right, the 0th, 1st, and 2nd pLLs.

_images/states_N600_0,148048148148_-0,5_0,5.png _images/states_N600_0,148048148148_0,8_0,9.png _images/states_N600_0,148048148148_0,9_1,35.png

Note

The spatial support of pLLs are equally distributed on the A and B sublattices, \langle A |A \rangle = \langle B |B \rangle=0.5.

Strained triangular flake

To emphasis the fact that the degeneracy and spatial support of the pLLs strongly depends on the geometry, we consider now a triangular flake. The large flake considered is defined by 5476 sites and N=74 sites at the triangle basis.

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=72, sites_cut=0, t_1=1., t_2=1., t_3=1.)
# unstrained flake
flake.get_eig_lin_strain(strain=strain_max_pos, eig_vec=False, vortex=False)
flake.plt_spec(ener_lim=[-1.5, 1.5], no_bins=101, save=True)
# strained flake
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain=strain_max_pos, eig_vec=False, vortex=False)
flake.plt_spec(ener_lim=[-1.5, 1.5], no_bins=101, save=True)

Unstrained flake

_images/spec_N5476_0,0.png _images/spec_histN5476_0,0.png

Maximal Strained flake

_images/spec_N5476_0,056238028169.png _images/spec_histN5476_0,056238028169.png

The pLLs are crystal clear! The degeneracy of the pLLs is: N-n for the nth pLL.

Let’s consider now a smaller flake with 625 sites and N=25

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=23, sites_cut=0, t_1=1., t_2=1., t_3=1.)
flake.plt_lattice(s=20, save=True)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain_max_pos, eig_vec=True, vortex=False)
flake.plt_lattice_hop(s=20, save=True)
flake.plt_spec(no_bins=41, ener_lim=[-2., 2.], plt_pola=True, save=True)
# Oth  pLL
flake.get_states_selec(e_min=-0.5, e_max=0.5)
flake.plt_states_selec(coef=100000, plt_bonds=True, plt_axis=False, save=True)
# 1st  pLL
flake.get_states_selec(e_min=0.8, e_max=1.)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 2nd pLL
flake.get_states_selec(e_min=1., e_max=1.4)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 3rd pLL
flake.get_states_selec(e_min=1.4, e_max=1.6)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 4th pLL
flake.get_states_selec(e_min=1.6, e_max=1.8)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 5th pLL
flake.get_states_selec(e_min=1.8, e_max=2.)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
flake.plt_show()
_images/spec_N625_0,181718181818.png

From left to right and top to bottom, the spatial support of the 0th, 1st , ..., and 5th pLLs.

_images/states_N625_0,181718181818_-0,5_0,5.png _images/states_N625_0,181718181818_0,8_1,0.png _images/states_N625_0,181718181818_1,0_1,4.png _images/states_N625_0,181718181818_1,4_1,6.png _images/states_N625_0,181718181818_1,6_1,8.png _images/states_N625_0,181718181818_1,8_2,0.png

Note

Like in the unstrained case, the spatial support of zero-modes, i.e. the 0th pLL, is only distribued on the A sublattice (\langle A |A \rangle = 1, \langle B |B \rangle=0). The spatial support is different from the unstrained case (see homepage).

Strained triangular flake with 3 cuts

_images/lattice_N598_0,0.png _images/lattice_hop_N598_0,181718181818.png
from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=23, sites_cut=3, t_1=1., t_2=1., t_3=1.)
flake.plt_lattice(s=20, save=True)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain_max_pos, eig_vec=True, vortex=False)
flake.plt_lattice_hop(s=20, save=True)
flake.plt_spec(no_bins=41, ener_lim=[-2., 2.], plt_pola=True, save=True)
# Oth  pLL
flake.get_states_selec(e_min=-0.5, e_max=0.5)
flake.plt_states_selec(coef=100000, plt_bonds=True, plt_axis=False, save=True)
# 1st  pLL
flake.get_states_selec(e_min=0.8, e_max=1.)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 2nd pLL
flake.get_states_selec(e_min=1., e_max=1.4)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 3rd pLL
flake.get_states_selec(e_min=1.4, e_max=1.6)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 4th pLL
flake.get_states_selec(e_min=1.6, e_max=1.8)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 5th pLL
flake.get_states_selec(e_min=1.8, e_max=2.)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
flake.plt_show()
_images/spec_N598_0,181718181818.png

From left to right and top to bottom, the spatial support of the 0th, 1st , ..., and 5th pLLs.

_images/states_N598_0,181718181818_-0,5_0,5.png _images/states_N598_0,181718181818_0,8_1,0.png _images/states_N598_0,181718181818_1,0_1,4.png _images/states_N598_0,181718181818_1,4_1,6.png _images/states_N598_0,181718181818_1,6_1,8.png _images/states_N598_0,181718181818_1,8_2,0.png

Strained triangular flake with 6 cuts

_images/lattice_N621_0,0.png _images/lattice_hop_N621_0,166566666667.png
from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=23, sites_cut=3, t_1=1., t_2=1., t_3=1.)
flake.plt_lattice(s=20, save=True)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain_max_pos, eig_vec=True, vortex=False)
flake.plt_lattice_hop(s=20, save=True)
flake.plt_spec(no_bins=41, ener_lim=[-2., 2.], plt_pola=True, save=True)
# Oth  pLL
flake.get_states_selec(e_min=-0.5, e_max=0.5)
flake.plt_states_selec(coef=100000, plt_bonds=True, plt_axis=False, save=True)
# 1st  pLL
flake.get_states_selec(e_min=0.8, e_max=1.)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 2nd pLL
flake.get_states_selec(e_min=1., e_max=1.4)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 3rd pLL
flake.get_states_selec(e_min=1.4, e_max=1.6)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 4th pLL
flake.get_states_selec(e_min=1.6, e_max=1.8)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 5th pLL
flake.get_states_selec(e_min=1.8, e_max=2.)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
flake.plt_show()
_images/spec_N621_0,166566666667.png

From left to right and top to bottom, the spatial support of the 0th, 1st , ..., and 5th pLLs.

_images/states_N621_0,166566666667_-0,5_0,5.png _images/states_N621_0,166566666667_0,8_1,0.png _images/states_N621_0,166566666667_1,0_1,4.png _images/states_N621_0,166566666667_1,4_1,6.png _images/states_N621_0,166566666667_1,6_1,8.png _images/states_N621_0,166566666667_1,8_1,95.png

Strained hexagonal flake with a vortex

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=28, sites_cut=10, t_1=1., t_2=1., t_3=1.)
flake.plt_lattice(s=20, save=True)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain_max_pos, eig_vec=True, vortex=True)
flake.plt_lattice_hop(s=20, save=True)
flake.plt_spec(no_bins=41, ener_lim=[-2., 2.], plt_pola=True, save=True)
# Oth  pLLs
flake.get_states_selec(e_min=-0.5, e_max=0.5)
flake.plt_states_selec(coef=100000, plt_bonds=True, plt_axis=False, save=True)
# 1st  pLLs
flake.get_states_selec(e_min=0.8, e_max=0.9)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# vortex-induced localized state between the 0th and 1st pLLs
flake.get_states_selec(e_min=0.55, e_max=0.65)
flake.plt_states_selec(coef= 10000, plt_bonds=True, plt_axis=False, save=True)
# vortex-induced localized state between the 1st and 2nd pLLs
flake.get_states_selec(e_min=0.9, e_max=1.1)
flake.plt_states_selec(coef= 10000, plt_bonds=True, plt_axis=False, save=True)
flake.plt_show()
_images/spec_N600_0,148048148148vor.png

From left to right spatial suport of the the 0th, and the 1st pLLs.

_images/states_N600_0,148048148148_-0,5_0,5vor.png _images/states_N600_0,148048148148_0,8_0,9vor.png

From left to right, the spatial support of the states between the 0th and 1st pLL, and the 1st and 2nd pLL.

_images/states_N600_0,148048148148_0,55_0,65vor.png _images/states_N600_0,148048148148_0,9_1,1vor.png

Degeneracy of the states between pLLs: between the nth and the (n+1)th pLLs: 2n+1. Flake geometry independent.

Strained triangular flake with a vortex

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=23, sites_cut=0, t_1=1., t_2=1., t_3=1.)
flake.plt_lattice(s=20, save=True)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain_max_pos, eig_vec=True, vortex=True)
flake.plt_lattice_hop(s=20, save=True)
flake.plt_spec(no_bins=41, ener_lim=[-2., 2.], plt_pola=True, save=True)
# Oth  pLL
flake.get_states_selec(e_min=-0.5, e_max=0.5)
flake.plt_states_selec(coef=100000, plt_bonds=True, plt_axis=False, save=True)
# 1st  pLL
flake.get_states_selec(e_min=0.8, e_max=1.)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# 2st  pLL
flake.get_states_selec(e_min=1.2, e_max=1.3)
flake.plt_states_selec(coef= 100000, plt_bonds=True, plt_axis=False, save=True)
# vortex-induced localized state between the 0th and 1st pLLs
flake.get_states_selec(e_min=0.4, e_max=.8)
flake.plt_states_selec(coef= 10000, plt_bonds=True, plt_axis=False, save=True)
# vortex-induced localized state between the 1st and 2nd pLLs
flake.get_states_selec(e_min=1., e_max=1.2)
flake.plt_states_selec(coef= 10000, plt_bonds=True, plt_axis=False, save=True)
# vortex-induced localized state between the 2nd and 3rd pLLs
flake.get_states_selec(e_min=1.3, e_max=1.5)
flake.plt_states_selec(coef= 10000, plt_bonds=True, plt_axis=False, save=True)
flake.plt_show()
_images/spec_N625_0,181718181818vor.png

From left to right, the spatial support of the 0th, 1st and, 2nd pLLs.

_images/states_N625_0,181718181818_-0,5_0,5vor.png _images/states_N625_0,181718181818_0,8_1,0vor.png _images/states_N625_0,181718181818_1,2_1,3vor.png

From left to right, the spatial suport of the states between the 0th and the 1st pLLs, between the 1st and the 2nd pLLs, and between the 2nd and the 3rd pLLs.

_images/states_N625_0,181718181818_0,4_0,8vor.png _images/states_N625_0,181718181818_1,0_1,2vor.png _images/states_N625_0,181718181818_1,3_1,5vor.png

Degeneracy of the states between pLLs: between the nth and the (n+1)th pLLs: 2n+1. Flake geometry independent.

Hofstadter butterfly

Hexagonal flake

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=28, sites_cut=10, t_1=1., t_2=1., t_3=1.)
flake.get_butterfly(nbr_points=128, ener_lim=[-2., 2.], vortex=False, save=True)
flake.get_butterfly(nbr_points=128, ener_lim=[-2., 2.], vortex=True, save=True)
flake.plt_show()
_images/butterfly_N600.png _images/butterfly_N600vor.png

Triangular flake

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(sites_base=23, sites_cut=0, t_1=1., t_2=1., t_3=1.)
flake.get_butterfly(nbr_points=128, ener_lim=[-2., 2.], vortex=False, save=True)
flake.get_butterfly(nbr_points=128, ener_lim=[-2., 2.], vortex=True, save=True)
flake.plt_show()
_images/butterfly_N625.png _images/butterfly_N625vor.png

Vacancy defect

A site

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(14)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain=strain_max_pos, eig_vec=True,
                        vacancy=True, row_vacancy=10)
flake.plt_lattice(plt_bonds=False, save=True)
flake.plt_spec(ener_lim=[-2.2, 2.2], nbr_bins=71, save=True)
flake.get_states_selec(e_min=-0.05, e_max=0.05)
flake.plt_states_selec(coef=100000., fontsize=20, plt_sites=True,
plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=0.6, e_max=0.9)
flake.plt_states_selec(coef=10000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=0.9, e_max=1.3)
flake.plt_states_selec(coef=100000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=1.3, e_max=1.5)
flake.plt_states_selec(coef=10000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=1.5, e_max=1.7)
flake.plt_states_selec(coef=100000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=1.7, e_max=1.9)
flake.plt_states_selec(coef=10000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=1.9, e_max=2.)
flake.plt_states_selec(coef=100000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=2., e_max=2.1)
flake.plt_states_selec(coef=10000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.plt_show()
_images/lattice_N255.png _images/spec_N255_0,307592307692.png

Spatial support of the 0th, 1st and 2nd pLLs.

_images/states_N255_0,307592307692_-0,05_0,05.png _images/states_N255_0,307592307692_0,9_1,3.png _images/states_N255_0,307592307692_1,5_1,7.png

Spatial support of the defect-induced localized states between the 0th and 1st pLL, the 1st and 2nd pLL and, the the 2nd and 3rd pLL.

_images/states_N255_0,307592307692_0,6_0,9.png _images/states_N255_0,307592307692_1,3_1,5.png _images/states_N255_0,307592307692_1,7_1,9.png

Degeneracy of the nth pLL: N-1-n. Degeneracy of the states between the nth and (n+1)th pLL: 1.

B site

from graphene_flake import * # import graphene_flake model class

flake = tri_to_hexa_zz(12)
strain_max_neg, strain_max_pos = flake.get_lin_strain_lims()
flake.get_eig_lin_strain(strain=strain_max_pos, eig_vec=True,
                        vacancy=True, row_vacancy=9)
flake.plt_lattice(plt_bonds=False, save=False)
flake.plt_spec(ener_lim=[-2.5, 2.5], nbr_bins=51)
flake.get_states_selec(e_min=-0.05, e_max=0.05)
flake.plt_states_selec(coef=100000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=0.9, e_max=1.4)
flake.plt_states_selec(coef=100000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=1.4, e_max=1.6)
flake.plt_states_selec(coef=10000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=1.6, e_max=1.8)
flake.plt_states_selec(coef=100000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=1.8, e_max=2.05)
flake.plt_states_selec(coef=10000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
flake.get_states_selec(e_min=2.05, e_max=2.2)
flake.plt_states_selec(coef=100000., fontsize=20, plt_sites=True,
    plt_bonds=False, plt_axis=False, save=True)
_images/lattice_N195.png _images/spec_N195_0,363536363636.png

Spatial support of the 0th, 1st and 2nd pLLs.

_images/states_N195_0,363536363636_-0,05_0,05.png _images/states_N195_0,363536363636_0,9_1,4.png _images/states_N195_0,363536363636_1,6_1,8.png

Spatial support of the defect-induced localized states between the 1st and 2nd pLL, the 2nd and 3rd pLL and, the 3rd and 4th pLL.

_images/states_N195_0,363536363636_1,4_1,6.png _images/states_N195_0,363536363636_1,8_2,05.png _images/states_N195_0,363536363636_2,2_2,3.png

Note

Note defect-induced state between the 0th and 1st pLLs.

Degeneracy of the 0th pLL: N+1, of the nth pLL: N-1-n. Degeneracy of the states between the nth and (n+1)th pLL: 1 (with |n|>0).