Esempio n. 1
0
def get_bar(param):
    g = geometry.square_ribbon(4)  # create geometry of the system
    #g = geometry.honeycomb_zigzag_ribbon(1) # create geometry of the system
    g = geometry.square_ribbon(1)  # create geometry of the system
    #g = g.supercell(10)
    h = g.get_hamiltonian()  # create hamiltonian
    #h.shift_fermi(0.5)
    hr = h.copy()
    hl = h.copy()
    hc = h.copy()

    hc.add_rashba(.6)
    hc.add_zeeman([.0, 0., 0.2])
    hc.shift_fermi(2.0)

    #hc.get_bands()
    #exit()

    #exit()
    hr.shift_fermi(1.)
    hl.shift_fermi(1.)
    hr.add_swave(0.0)
    hc.add_swave(param)
    hl.add_swave(0.0)

    hc.get_bands()

    # of the scattering centrl part
    # create a junction object
    ht = heterostructures.create_leads_and_central(hr,
                                                   hl,
                                                   hc,
                                                   block_diagonal=False,
                                                   num_central=1)
    hlist = [hc for i in range(80)]  # create a list with the hamiltonians
    ht = heterostructures.create_leads_and_central_list(hr, hl, hlist)
    ht.left_coupling *= .3
    ht.right_coupling *= .3
    return ht
Esempio n. 2
0
def get_bar(param):
  g = geometry.square_ribbon(4) # create geometry of the system
  #g = geometry.honeycomb_zigzag_ribbon(1) # create geometry of the system
  g = geometry.square_ribbon(1) # create geometry of the system
  #g = g.supercell(10)
  h = g.get_hamiltonian() # create hamiltonian
  #h.shift_fermi(0.5)
  hr = h.copy()
  hl = h.copy()
  hc = h.copy()
  
  hc.add_rashba(.6)
  hc.add_zeeman([.0,0.,0.2])
  hc.shift_fermi(2.0)
  
  #hc.get_bands()
  #exit()
  
  #exit()
  hr.shift_fermi(1.)
  hl.shift_fermi(1.)
  hr.add_swave(0.0)
  hc.add_swave(0.1)
  hl.add_swave(0.0)
  
  hc.get_bands()
  
  
                                  # of the scattering centrl part
  # create a junction object
  ht = heterostructures.create_leads_and_central(hr,hl,hc,block_diagonal=False,
                                                    num_central = 1) 
  hlist = [hc for i in range(param)]  # create a list with the hamiltonians 
  ht = heterostructures.create_leads_and_central_list(hr,hl,hlist)
  ht.left_coupling *= .3
  ht.right_coupling *= .3
  return ht
Esempio n. 3
0
    h_left.shift_fermi(mu)

    # electron hole sector
    #  h_right.add_swave_electron_hole_pairing(delta=sval,phi=0.0)
    h_right.add_swave_electron_hole_pairing(delta=sval, phi=0.0)
    h_left.add_swave_electron_hole_pairing(delta=0., phi=0.0)

    # hybrid right part
    h_right = hamiltonians.create_hybrid(h_right, h_left)

    from time import clock
    told = clock()
    h_list = [h_left for i in range(5)]
    h_list += [h_right for i in range(5)]
    # create heterojunctions
    hj_uniform = heterostructures.create_leads_and_central_list(
        h_right, h_left, h_list)

    eig = heterostructures.eigenvalues(hj_uniform, numeig=5, effective=True)
    eig = sorted(zip(eig.real, eig.imag))  # sort eigenvalues

    for e in eig:  # plot
        sfig_mu.scatter(sval, e[0])
        print sval, e[0], e[1]
    # write in the file
    with open(file_eigen, "a") as myfile:
        myfile.write("\n" + str(sval) + "  ")
        for e in eig:  # plot
            myfile.write(str(e[0]) + "  " + str(e[1]) + "  ")

py.show()
Esempio n. 4
0
import geometry
import heterostructures
import numpy as np
import matplotlib.pyplot as plt

g = geometry.square_ribbon(10)
g = g.supercell(2)
h = g.get_hamiltonian()
#h.add_peierls(.2)
h.remove_spin()
h = disorder.anderson(h, w=0.5)
h.get_bands(nkpoints=2000)
hr = h.copy()
hl = h.copy()

hcs = [h for i in range(10)]
ht = heterostructures.create_leads_and_central_list(hr, hl, hcs)
es = np.linspace(-.5, .5, 500)
ts = np.array([ht.didv(e, delta=1e-11, kwant=True) for e in es])

m = np.genfromtxt("BANDS.OUT").transpose()

plt.subplot(2, 1, 1)
plt.plot(es, ts)
plt.xlim([min(es), max(es)])
plt.subplot(2, 1, 2)
plt.scatter(m[1], m[0])
plt.xlim([min(es), max(es)])

plt.show()
Esempio n. 5
0
#exit()
#hr.shift_fermi(1.)
hr.add_swave(0.0)
hc.add_swave(0.1)
hl.add_swave(0.0)

hc.get_bands()

es = np.linspace(-.2,.2,100) # array with the energies

                                # of the scattering centrl part
# create a junction object
ht = heterostructures.create_leads_and_central(hr,hl,hc,block_diagonal=False,
                                                  num_central = 1) 
hlist = [hc for i in range(60)]  # create a list with the hamiltonians 
ht = heterostructures.create_leads_and_central_list(hr,hl,hlist)
ht.left_coupling *= .3
ht.right_coupling *= .3
gs = []
# calculate
G = heterostructures.didv(ht,energy = 0.4)
#exit()
for e in es:
  G = heterostructures.didv(ht,energy = e)
  gs.append(G)
  print G

plt.plot(es,gs)
plt.show()