Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
# 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)
Esempio n. 6
0
File: main.py Progetto: zx-sdu/pygra
# 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"))