On Sat, May 15, 2021 at 7:27 PM Anton Akhmerov <[email protected]> wrote: > > Dear 张金龙, > > Note the axis of the plot reads 1e-9+1, so the plot limits go from 1 - > 0.2e-9 to 1 + 1e-9.
I still can't figure out the following correspondence: 1e-9+1 <---> 1 - 0.2e-9 to 1 + 1e-9. Any more hints? HY > This how matplotlib treats plots that are > approximately constant. > > Hope this helps, > Anton > > > On Sat, 15 May 2021 at 13:24, 张金龙 <[email protected]> wrote: > > > > > > Hello > > > > I felt confusing, when I use pyplot.plt. The data in figure is different > > from the printed. > > > > There are the codes: > > > > # ================================================================ > > > > # Physics background > > > > # ------------------ > > > > # Kwant features highlighted > > > > # -------------------------- > > > > # - Numpy matrices as values in Builder > > > > > > import kwant > > > > import numpy as np > > > > > > # For plotting > > > > import matplotlib.pyplot as plt > > > > > > # For matrix support > > > > import tinyarray > > > > > > import kwant.qsymm > > > > > > # define Pauli-matrices for convenience > > > > s_0 = tinyarray.array([[1, 0], [0, 1]]) > > > > s_x = tinyarray.array([[0, 1], [1, 0]]) > > > > s_y = tinyarray.array([[0, -1j], [1j, 0]]) > > > > s_z = tinyarray.array([[1, 0], [0, -1]]) > > > > > > mz=0 # AFM > > > > mu=0.0 # stargged chemical potential > > > > n_theta=12 > > > > > > def make_system(constant=1, W=30, L=30, mz=0, m_in=0, mu=0): > > > > lat = kwant.lattice.honeycomb(a=constant,norbs=2, name=['a', 'b']) > > > > # a, b = lat.sublattices > > > > sym = kwant.TranslationalSymmetry(lat.vec((1, 0))) > > > > syst = kwant.Builder() > > > > > > def onsite_a(site,theta): > > > > return mz*s_z+m_in*(np.cos(theta)*s_x+np.sin(theta)*s_y)+mu*s_0 > > > > > > > > def onsite_b(site,theta): > > > > return -mz*s_z+m_in*(np.cos(theta)*s_x+np.sin(theta)*s_y)-mu*s_0 > > > > > > syst[(lat.a(x, y) for x in range(L) for y in range(W))] = onsite_a > > > > syst[(lat.b(x, y) for x in range(L) for y in range(W))] = onsite_b > > > > syst[lat.neighbors()] = s_0 > > > > > > # define lead > > > > left_sym=kwant.TranslationalSymmetry(lat.vec((1, 0))) > > > > left_lead=kwant.Builder(left_sym) > > > > left_lead[(lat.a(0, y) for y in range(W))] = onsite_a > > > > left_lead[(lat.b(0, y) for y in range(W))] = onsite_b > > > > left_lead[lat.neighbors()] = s_0 > > > > syst.attach_lead(left_lead) > > > > syst.attach_lead(left_lead.reversed()) > > > > return syst > > > > > > > > > > def plot_conductance(syst, energy, theta_list): > > > > # Compute conductance > > > > data = np.zeros(n_theta) > > > > num_i=-1 > > > > for theta_i in theta_list: > > > > num_i=num_i+1 > > > > smatrix = kwant.smatrix(syst, energy, params=dict(theta=theta_i)) > > > > data[num_i]=smatrix.transmission(1, 0) > > > > > > > > plt.figure() > > > > # x=np.linspace(-1,1,n_theta) > > > > # data_i=np.linspace(0,0,n_theta) > > > > # print(x,data_i) > > > > # plt.plot(x,data_i,'ow') > > > > print(data) > > > > plt.plot(theta_list, data) > > > > plt.xlabel(r'$\theta/\pi$') > > > > plt.ylabel("conductance [e^2/h]") > > > > plt.savefig('tran_PHE.jpg') > > > > #plt.show() > > > > > > > > def main(): > > > > syst = make_system(m_in=0.0001) > > > > # Check that the system looks as intended. > > > > kwant.plot(syst,file='transport_lattice.pdf') > > > > > > syst = syst.finalized() > > > > theta_num=np.linspace(-np.pi,np.pi,num=n_theta) > > > > > > plot_conductance(syst, energy=0.0001, > > > > theta_list=theta_num) > > > > > > if __name__ == '__main__': > > > > main() > > > > > > > > > > The result would be printed in terminal: [1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. > > 1.]. > > > > However, the figure plotted is wrong. > > > > > > > > > > > > > > -- > > > > Best Wishes > > Jinlong Zhang > > [email protected] > > > > > > -- Assoc. Prof. Hongyi Zhao <[email protected]> Theory and Simulation of Materials Hebei Vocational University of Technology and Engineering NO. 552 North Gangtie Road, Xingtai, China
