pygra-master
所属分类:Linux/Unix编程
开发工具:Python
文件大小:6155KB
下载次数:2
上传日期:2020-05-19 16:21:36
上 传 者:
yh96
说明: 第一性原理计算工具包,可以算各类拓扑能带结构,供大家学习
(The first principle calculation tool kit can calculate all kinds of topological energy band structures for everyone to learn)
文件列表:
LICENSE.md (35141, 2020-04-27)
__init__.py (0, 2020-04-27)
clean.py (216, 2020-04-27)
examples (0, 2020-04-27)
examples\0d (0, 2020-04-27)
examples\0d\AAH_model (0, 2020-04-27)
examples\0d\AAH_model\main.py (1298, 2020-04-27)
examples\0d\SCF_graphene_island (0, 2020-04-27)
examples\0d\SCF_graphene_island\crystal.xyz (7620, 2020-04-27)
examples\0d\SCF_graphene_island\main.py (1227, 2020-04-27)
examples\0d\SC_AF (0, 2020-04-27)
examples\0d\SC_AF\MULTILDOS (0, 2020-04-27)
examples\0d\SC_AF\MULTILDOS\MULTILDOS.TXT (1118, 2020-04-27)
examples\0d\SC_AF\crystal.xyz (2738, 2020-04-27)
examples\0d\SC_AF\main.py (699, 2020-04-27)
examples\0d\aahf (0, 2020-04-27)
examples\0d\aahf\main.py (1130, 2020-04-27)
examples\0d\density_matrix (0, 2020-04-27)
examples\0d\density_matrix\crystal.xyz (5124, 2020-04-27)
examples\0d\density_matrix\main.py (623, 2020-04-27)
examples\0d\evolution_correlation (0, 2020-04-27)
examples\0d\evolution_correlation\main.py (980, 2020-04-27)
examples\0d\harper_correlator (0, 2020-04-27)
examples\0d\harper_correlator\main.py (534, 2020-04-27)
examples\0d\harper_response (0, 2020-04-27)
examples\0d\harper_response\main.py (834, 2020-04-27)
examples\0d\harper_scf (0, 2020-04-27)
examples\0d\harper_scf\main.py (1163, 2020-04-27)
examples\0d\kekule_scf (0, 2020-04-27)
examples\0d\kekule_scf\main.py (688, 2020-04-27)
examples\0d\kpm_correlator (0, 2020-04-27)
examples\0d\kpm_correlator\main.py (1137, 2020-04-27)
examples\0d\kpm_density_matrix_ij (0, 2020-04-27)
examples\0d\kpm_density_matrix_ij\main.py (1281, 2020-04-27)
examples\0d\ldos_chain (0, 2020-04-27)
examples\0d\ldos_chain\MULTILDOS (0, 2020-04-27)
examples\0d\ldos_chain\MULTILDOS\MULTILDOS.TXT (9017, 2020-04-27)
... ...
# AIM #
This is a Python library to compute tight binding models in different
dimensionalities and based on a variety of different lattices.
# 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 the
library. 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
```python
from pygra import geometry
g = geometry.honeycomb_lattice() # get the geometry object
h = g.get_hamiltonian() # get the Hamiltonian object
h.get_bands() # compute the band structure
```
## Mean field Hubbard model of a zigzag graphene ribbon
```python
from pygra import geometry
from pygra import scftypes
g = geometry.honeycomb_zigzag_ribbon(10) # create geometry of a zigzag ribbon
h = g.get_hamiltonian() # create hamiltonian of the system
mf = scftypes.guess(h,"ferro",fun=lambda r: [0.,0.,1.])
scf = scftypes.hubbardscf(h,nkp=30,filling=0.5,mf=mf)
h = scf.hamiltonian # get the Hamiltonian
h.get_bands(operator="sz") # calculate band structure
```
## Band structure of twisted bilayer graphene
```python
from pygra import specialgeometry
from pygra.specialhopping import twisted_matrix
g = 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
```python
from pygra import geometry
from pygra import topology
g = geometry.honeycomb_lattice()
h = g.get_hamiltonian()
h.add_rashba(0.3) # Rashba spin-orbit coupling
h.add_zeeman([0.,0.,0.3]) # Zeeman field
c = topology.chern(h) # compute Chern number
print("Chern number is ",c)
```
## Band structure of a nodal line semimetal
```python
from pygra import geometry
from pygra import films
g = 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
```python
from pygra import geometry
from pygra import kdos
g = geometry.honeycomb_lattice()
h = g.get_hamiltonian()
h.add_haldane(0.05)
kdos.surface(h)
```
## Antiferromagnet-superconductor interface
```python
from pygra import geometry
g = geometry.honeycomb_zigzag_ribbon(10) # create geometry of a zigzag ribbon
h = g.get_hamiltonian(has_spin=True) # create hamiltonian of the system
h.add_antiferromagnetism(lambda r: (r[1]>0)*0.5) # add antiferromagnetism
h.add_swave(lambda r: (r[1]<0)*0.3) # add superconductivity
h.get_bands() # calculate band structure
```
## Fermi surface of a Kagome lattice
```python
from pygra import geometry
from pygra import spectrum
import numpy as np
g = 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 case
they are not compiled, the library will still work but certain parts
will be substantially slower.
Parts of the code rely on Python libraries
- numpy
- scipy
- multiprocess
近期下载者:
相关文件:
收藏者: