Esempio n. 1
0
# Add the root path of the pygra library
import os
import sys
sys.path.append(os.environ['PYGRAROOT'])

# zigzag ribbon
from pygra import geometry
g = geometry.honeycomb_armchair_ribbon(2)  # create geometry of a zigzag ribbon
g = geometry.chain(2)  # create geometry of a zigzag ribbon
g.dimensionality = 0
g.write()
h = g.get_hamiltonian()
from pygra import ldos
ldos.multi_ldos(h, projection="atomic")
Esempio n. 2
0
# Add the root path of the pygra library
import os ; import sys ; sys.path.append(os.environ['PYGRAROOT'])

import numpy as np
from pygra import geometry
from pygra import ldos
g = geometry.honeycomb_zigzag_ribbon()
h = g.get_hamiltonian(has_spin=True)
ldos.multi_ldos(h,nk=4,es=np.linspace(-1,1,100),delta=0.1,nrep=3)
Esempio n. 3
0
# Add the root path of the pygra library
import os ; import sys 
sys.path.append(os.path.dirname(os.path.realpath(__file__))+"/../../../src")





import numpy as np
from pygra import geometry
from pygra import ldos
g = geometry.honeycomb_zigzag_ribbon()
h = g.get_hamiltonian(has_spin=True)
ldos.multi_ldos(h,nk=4,es=np.linspace(-1,1,100),delta=0.1,nrep=3)






Esempio n. 4
0
n = 40
w = n / 2.  # cutoff for the hopping
g = geometry.chain(n)  # chain
g.dimensionality = 0


def ft(n):
    def f0(i1, i2):
        if abs(i1 - i2) == 1:
            i0 = (i1 + i2) / 2.0 / n  # average
            return np.tanh(4. * i0**2)
        else:
            return 0.

    return f0  # return function


f0 = ft(n)  # function


def f(r1, r2):
    i1 = g.get_index(r1)
    i2 = g.get_index(r2)
    return f0(i1, i2)


h = g.get_hamiltonian(fun=f, has_spin=False)
#h = g.get_hamiltonian(has_spin=False)
ldos.multi_ldos(h, delta=2e-2, es=np.linspace(-0.5, 0.5, 300))