def get_armchair_bilayer(n=10): """Get hamiltonian of an armchair bilayer""" import geometry g = geometry.honeycomb_armchair_ribbon(30) drs = [np.array([0., 0., -1.]), np.array([np.sqrt(3.) / 2., 0., 1.])] g = geometry.apilate(g, drs=drs) h = g.get_hamiltonian() return h
def get_armchair_bilayer(n=10): """Get hamiltonian of an armchair bilayer""" import geometry g = geometry.honeycomb_armchair_ribbon(30) drs = [np.array([0.,0.,-1.]),np.array([np.sqrt(3.)/2.,0.,1.])] g = geometry.apilate(g,drs=drs) h = g.get_hamiltonian() return h
def graphene_armchair_ribbon(ntetramers=1,lambda_soc=0.0): """ Creates teh hamiltonian for a graphene armchair ribbon""" g = geometry.honeycomb_armchair_ribbon(ntetramers) # create the geometry h = hamiltonians.hamiltonian(g) # create the hamiltonian # get the intracell and intercell terms (intra,inter) = hamiltonians.kane_mele(g.x,g.y, celldis=g.celldis,lambda_soc=lambda_soc) h.intra = intra # assign intracell h.inter = inter # assign intercell return h # return hamiltonian
def graphene_armchair_ribbon(ntetramers=1, lambda_soc=0.0): """ Creates teh hamiltonian for a graphene armchair ribbon""" g = geometry.honeycomb_armchair_ribbon(ntetramers) # create the geometry h = hamiltonians.hamiltonian(g) # create the hamiltonian # get the intracell and intercell terms (intra, inter) = hamiltonians.kane_mele(g.x, g.y, celldis=g.celldis, lambda_soc=lambda_soc) h.intra = intra # assign intracell h.inter = inter # assign intercell return h # return hamiltonian
# file file_eigen = "eigen_heff.dat" os.remove(file_eigen) with open(file_eigen, "a") as myfile: myfile.write("# Swave Real Imag") neig = 2 # number of eigenvalues fig_mu = py.figure() fig_mu.set_facecolor("white") sfig_mu = fig_mu.add_subplot(111) svalues = np.arange(0.0, 0.5, 0.02) for sval in svalues: # g = geometry.honeycomb_armchair_ribbon(ntetramers=15) g = geometry.honeycomb_armchair_ribbon(ntetramers=25) # create hamiltonians heterojunction h_right = hamiltonians.hamiltonian(g) h_left = hamiltonians.hamiltonian(g) # central is QSH h_right.get_simple_tb() h_left.get_simple_tb() h_left.read(input_file="hamiltonian_canted_25.in") # shift fermi energy mu = 0.04 h_right.shift_fermi(0.4) h_left.shift_fermi(mu)
# zigzag ribbon import sys sys.path.append("../../../pygra") # add pygra library import geometry g = geometry.honeycomb_armchair_ribbon( 60) # create geometry of a zigzag ribbon h = g.get_hamiltonian(has_spin=True) # create hamiltonian of the system h.add_haldane(.1) # add Haldane coupling h.get_bands() # calculate band structure #h.get_bands(operator=h.get_operator("valley"))