.. graphene_flake documentation master file, created by sphinx-quickstart on Sat Apr 18 18:56:08 2015. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. .. toctree:: :titlesonly: 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: .. image:: figs/legend_lattice.png :width: 20% :align: center The A and B sublattices of the spatial support are represented by: .. image:: figs/legend_intensity.png :width: 20% :align: center Triaxial linear strain ====================== First, let's illustrate the effect of strain on the flake by considering different strengths of the strain. Hexagonal flake --------------- .. code:: 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 .. image:: figs/lattice_N150_0,0.png :width: 45% :align: center increasing negative strain .. image:: figs/lattice_hop_N150_-0,0833083333333.png :width: 31% .. image:: figs/lattice_hop_N150_-0,166616666667.png :width: 31% .. image:: figs/lattice_hop_N150_-0,249925.png :width: 31% increasing positive strain .. image:: figs/lattice_hop_N150_0,0833083333333.png :width: 31% .. image:: figs/lattice_hop_N150_0,166616666667.png :width: 31% .. image:: figs/lattice_hop_N150_0,249925.png :width: 31% Triangular flake ---------------- .. code:: 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 .. image:: figs/lattice_N144_0,0.png :width: 45% :align: center increasing negative strain .. image:: figs/lattice_hop_N144_-0,047594047619.png :width: 31% .. image:: figs/lattice_hop_N144_-0,0951880952381.png :width: 31% .. image:: figs/lattice_hop_N144_-0,142782142857.png :width: 31% increasing positive strain .. image:: figs/lattice_hop_N144_0,111086111111.png :width: 31% .. image:: figs/lattice_hop_N144_0,222172222222.png :width: 31% .. image:: figs/lattice_hop_N144_0,333258333333.png :width: 31% Strained hexagonal flake ======================== Let's compare the spectrum of an unstrained and strained large flake (5400 sites, :math:`N=30` sites at each edge). .. code:: 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 .. image:: figs/spec_N5400_0,0.png :width: 48% .. image:: figs/spec_histN5400_0,0.png :width: 48% Maximal strained flake .. image:: figs/spec_N5400_0,0458770114943.png :width: 48% .. image:: figs/spec_histN5400_0,0458770114943.png :width: 48% The two distinct ways to represent the spectrum reveal the drastic changes introduced by the inhomogeneous strain. At low enough energy (:math:`E<1`), highly degenerated states separated by gaps (pseudo Laudau levels) appear. The degeneracy of the pLLs can be obtained numerically: :math:`6N` for the 0th pLL and :math:`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, :math:`N=10`). .. image:: figs/lattice_N600_0,0.png :width: 45% .. image:: figs/lattice_hop_N600_0,148048148148.png :width: 45% .. code-block:: python 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() .. image:: figs/spec_N600_0,148048148148.png :width: 55% :align: center From left to right, the 0th, 1st, and 2nd pLLs. .. image:: figs/states_N600_0,148048148148_-0,5_0,5.png :width: 31% .. image:: figs/states_N600_0,148048148148_0,8_0,9.png :width: 31% .. image:: figs/states_N600_0,148048148148_0,9_1,35.png :width: 31% .. Note:: The spatial support of pLLs are equally distributed on the A and B sublattices, :math:`\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 :math:`N=74` sites at the triangle basis. .. code:: 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 .. image:: figs/spec_N5476_0,0.png :width: 48% .. image:: figs/spec_histN5476_0,0.png :width: 48% Maximal Strained flake .. image:: figs/spec_N5476_0,056238028169.png :width: 48% .. image:: figs/spec_histN5476_0,056238028169.png :width: 48% 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 :math:`N=25` .. code-block:: python 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() .. image:: figs/spec_N625_0,181718181818.png :width: 55% :align: center From left to right and top to bottom, the spatial support of the 0th, 1st , ..., and 5th pLLs. .. image:: figs/states_N625_0,181718181818_-0,5_0,5.png :width: 31% .. image:: figs/states_N625_0,181718181818_0,8_1,0.png :width: 31% .. image:: figs/states_N625_0,181718181818_1,0_1,4.png :width: 31% .. image:: figs/states_N625_0,181718181818_1,4_1,6.png :width: 31% .. image:: figs/states_N625_0,181718181818_1,6_1,8.png :width: 31% .. image:: figs/states_N625_0,181718181818_1,8_2,0.png :width: 31% .. Note:: Like in the unstrained case, the spatial support of zero-modes, i.e. the 0th pLL, is only distribued on the A sublattice (:math:`\langle A |A \rangle = 1`, :math:`\langle B |B \rangle=0`). The spatial support is different from the unstrained case (see homepage). Strained triangular flake with 3 cuts ===================================== .. image:: figs/lattice_N598_0,0.png :width: 45% .. image:: figs/lattice_hop_N598_0,181718181818.png :width: 45% .. code-block:: python 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() .. image:: figs/spec_N598_0,181718181818.png :width: 55% :align: center From left to right and top to bottom, the spatial support of the 0th, 1st , ..., and 5th pLLs. .. image:: figs/states_N598_0,181718181818_-0,5_0,5.png :width: 31% .. image:: figs/states_N598_0,181718181818_0,8_1,0.png :width: 31% .. image:: figs/states_N598_0,181718181818_1,0_1,4.png :width: 31% .. image:: figs/states_N598_0,181718181818_1,4_1,6.png :width: 31% .. image:: figs/states_N598_0,181718181818_1,6_1,8.png :width: 31% .. image:: figs/states_N598_0,181718181818_1,8_2,0.png :width: 31% Strained triangular flake with 6 cuts ===================================== .. image:: figs/lattice_N621_0,0.png :width: 45% .. image:: figs/lattice_hop_N621_0,166566666667.png :width: 45% .. code-block:: python 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() .. image:: figs/spec_N621_0,166566666667.png :width: 55% :align: center From left to right and top to bottom, the spatial support of the 0th, 1st , ..., and 5th pLLs. .. image:: figs/states_N621_0,166566666667_-0,5_0,5.png :width: 31% .. image:: figs/states_N621_0,166566666667_0,8_1,0.png :width: 31% .. image:: figs/states_N621_0,166566666667_1,0_1,4.png :width: 31% .. image:: figs/states_N621_0,166566666667_1,4_1,6.png :width: 31% .. image:: figs/states_N621_0,166566666667_1,6_1,8.png :width: 31% .. image:: figs/states_N621_0,166566666667_1,8_1,95.png :width: 31% Strained hexagonal flake with a vortex ====================================== .. code-block:: python 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() .. image:: figs/spec_N600_0,148048148148vor.png :width: 45% :align: center From left to right spatial suport of the the 0th, and the 1st pLLs. .. image:: figs/states_N600_0,148048148148_-0,5_0,5vor.png :width: 45% .. image:: figs/states_N600_0,148048148148_0,8_0,9vor.png :width: 45% From left to right, the spatial support of the states between the 0th and 1st pLL, and the 1st and 2nd pLL. .. image:: figs/states_N600_0,148048148148_0,55_0,65vor.png :width: 45% .. image:: figs/states_N600_0,148048148148_0,9_1,1vor.png :width: 45% 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 ======================================= .. code-block:: python 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() .. image:: figs/spec_N625_0,181718181818vor.png :width: 55% :align: center From left to right, the spatial support of the 0th, 1st and, 2nd pLLs. .. image:: figs/states_N625_0,181718181818_-0,5_0,5vor.png :width: 31% .. image:: figs/states_N625_0,181718181818_0,8_1,0vor.png :width: 31% .. image:: figs/states_N625_0,181718181818_1,2_1,3vor.png :width: 31% 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. .. image:: figs/states_N625_0,181718181818_0,4_0,8vor.png :width: 31% .. image:: figs/states_N625_0,181718181818_1,0_1,2vor.png :width: 31% .. image:: figs/states_N625_0,181718181818_1,3_1,5vor.png :width: 31% Degeneracy of the states between pLLs: between the nth and the (n+1)th pLLs: 2n+1. Flake geometry independent. Hofstadter butterfly ==================== Hexagonal flake ---------------- .. code-block:: python 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() .. image:: figs/butterfly_N600.png :width: 47% .. image:: figs/butterfly_N600vor.png :width: 47% Triangular flake ---------------- .. code-block:: python 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() .. image:: figs/butterfly_N625.png :width: 47% .. image:: figs/butterfly_N625vor.png :width: 47% Vacancy defect ============== A site ------ .. code-block:: python 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() .. image:: figs/lattice_N255.png :width: 35% .. image:: figs/spec_N255_0,307592307692.png :width: 55% .. image:: figs/states_N255_0,307592307692_-0,05_0,05.png :width: 31% .. image:: figs/states_N255_0,307592307692_0,9_1,3.png :width: 31% .. image:: figs/states_N255_0,307592307692_1,5_1,7.png :width: 31% 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. .. image:: figs/states_N255_0,307592307692_0,6_0,9.png :width: 31% .. image:: figs/states_N255_0,307592307692_1,3_1,5.png :width: 31% .. image:: figs/states_N255_0,307592307692_1,7_1,9.png :width: 31% Degeneracy of the nth pLL: N-1-n. Degeneracy of the states between the nth and (n+1)th pLL: 1. B site ------ .. code-block:: python 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) .. image:: figs/lattice_N195.png :width: 35% .. image:: figs/spec_N195_0,363536363636.png :width: 55% Spatial support of the 0th, 1st and 2nd pLLs. .. image:: figs/states_N195_0,363536363636_-0,05_0,05.png :width: 31% .. image:: figs/states_N195_0,363536363636_0,9_1,4.png :width: 31% .. image:: figs/states_N195_0,363536363636_1,6_1,8.png :width: 31% 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. .. image:: figs/states_N195_0,363536363636_1,4_1,6.png :width: 31% .. image:: figs/states_N195_0,363536363636_1,8_2,05.png :width: 31% .. image:: figs/states_N195_0,363536363636_2,2_2,3.png :width: 31% .. 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 :math:`|n|>0`).