Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Python library to compute different properties of tight binding models

License

NotificationsYou must be signed in to change notification settings

joselado/pygra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a Python library to compute tight binding models in differentdimensionalities and based on a variety of different lattices.

A generic version of this library is called pyqula, and can be downloaded fromhttps://github.com/joselado/pyqula

CAPABILITIES

  • 0d, 1d, 2d and 3d systems
  • Band structures
  • Density of states
  • Include magnetism, spin-orbit coupling and superconductivity
  • Selfconsistent mean field calculations
  • Topological characterization of electronic structures
  • Green's function formalism for semi-infinite systems
  • Spectral functions
  • Kernel polynomial techniques
  • Quantum Transport

EXAMPLES

In the examples folder there are several examples of usage of thelibrary. You will find among others:

  • Quantum anomalous Hall and topological insulators
  • Topological superconductors and Shiba lattices
  • Magnetism in graphene materials
  • Twisted bilayer graphene
  • Nodal line semimetals

Band structure of graphene

frompygraimportgeometryg=geometry.honeycomb_lattice()# get the geometry objecth=g.get_hamiltonian()# get the Hamiltonian objecth.get_bands()# compute the band structure

Mean field Hubbard model of a zigzag graphene ribbon

frompygraimportgeometryfrompygraimportscftypesg=geometry.honeycomb_zigzag_ribbon(10)# create geometry of a zigzag ribbonh=g.get_hamiltonian()# create hamiltonian of the systemmf=scftypes.guess(h,"ferro",fun=lambdar: [0.,0.,1.])scf=scftypes.hubbardscf(h,nkp=30,filling=0.5,mf=mf)h=scf.hamiltonian# get the Hamiltonianh.get_bands(operator="sz")# calculate band structure

Band structure of twisted bilayer graphene

frompygraimportspecialgeometryfrompygra.specialhoppingimporttwisted_matrixg=specialgeometry.twisted_bilayer(3)h=g.get_hamiltonian(mgenerator=twisted_matrix(ti=0.12))h.get_bands(nk=100)

Chern number of a quantum anomalous Hall insulator

frompygraimportgeometryfrompygraimporttopologyg=geometry.honeycomb_lattice()h=g.get_hamiltonian()h.add_rashba(0.3)# Rashba spin-orbit couplingh.add_zeeman([0.,0.,0.3])# Zeeman fieldc=topology.chern(h)# compute Chern numberprint("Chern number is ",c)

Band structure of a nodal line semimetal

frompygraimportgeometryfrompygraimportfilmsg=geometry.diamond_lattice_minimal()g=films.geometry_film(g,nz=20)h=g.get_hamiltonian()h.get_bands()

Surface spectral function of the Haldane model

frompygraimportgeometryfrompygraimportkdosg=geometry.honeycomb_lattice()h=g.get_hamiltonian()h.add_haldane(0.05)kdos.surface(h)

Antiferromagnet-superconductor interface

frompygraimportgeometryg=geometry.honeycomb_zigzag_ribbon(10)# create geometry of a zigzag ribbonh=g.get_hamiltonian(has_spin=True)# create hamiltonian of the systemh.add_antiferromagnetism(lambdar: (r[1]>0)*0.5)# add antiferromagnetismh.add_swave(lambdar: (r[1]<0)*0.3)# add superconductivityh.get_bands()# calculate band structure

Fermi surface of a Kagome lattice

frompygraimportgeometryfrompygraimportspectrumimportnumpyasnpg=geometry.kagome_lattice()h=g.get_hamiltonian()spectrum.multi_fermi_surface(h,nk=60,energies=np.linspace(-4,4,100),delta=0.1,nsuper=1)

INSTALLATION

Parts of the code are written in Fortran for a matter of performance.To compile those functions you need to execute "install.sh" In casethey are not compiled, the library will still work but certain partswill be substantially slower. Compiling the fortran routines requireshaving a fortran compiler, such as gfortran.

Parts of the code rely on Python libraries

  • numpy
  • scipy
  • multiprocess
  • numba

About

Python library to compute different properties of tight binding models

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp