Beispiel #1
0
            ([1, +1], 'A', 'A', t_nn),
            ([1, +1], 'B', 'B', t_nn),
            ([1, -2], 'A', 'A', t_nn),
            ([1, -2], 'B', 'B', t_nn),
        )

    lat.min_neighbors = 2

    return lat


lattice = graphene(nearest_neighbors=3)

lx = int(sys.argv[1])
ly = int(sys.argv[2])

domain_decompose_1 = int(sys.argv[3])
domain_decompose_2 = int(sys.argv[4])

num_moments = int(sys.argv[5])

emin, emax = -3.01 * np.abs(t) - 6 * t_nn, 3.01 * np.abs(t) + 6 * t_nn
configuration = kite.Configuration(divisions=[domain_decompose_1, domain_decompose_2], length=[lx, ly],
                                   boundaries=[True, True], is_complex=False, precision=1, spectrum_range=[emin, emax])

calculation = kite.Calculation(configuration)
calculation.dos(num_points=1000, num_moments=num_moments, num_random=1, num_disorder=1)

name = 'dos_gr_nnn.h5'
kite.config_system(lattice, configuration, calculation, filename=name)
Beispiel #2
0
    # Add sublattices
    lat.add_sublattices(
        # name, position, and onsite potential
        ('A', [0, 0], onsite[0])
    )

    # Add hoppings
    lat.add_hoppings(
        ([1, 0], 'A', 'A', - 1),
        ([0, 1], 'A', 'A', - 1)
    )

    return lat


# load a square lattice
lattice = square_lattice([0])
# number of decomposition parts in each direction of matrix. This divides the lattice into various sections,
# each of which is calculated in parallel
nx = ny = 2
# number of unit cells in each direction.
lx = 256
ly = 256
configuration = kite.Configuration(divisions=[nx, ny], length=[lx, ly], boundaries=[True, True],
                                   is_complex=False, precision=1, spectrum_range=[-4.1,4.1])

calculation_ldos = kite.Calculation(configuration)
calculation_ldos.ldos(energy=np.linspace(-1, 1, 100), num_moments=32, num_disorder=1, position=[4,3], sublattice='A')
kite.config_system(lattice, configuration, calculation_ldos, filename='config.h5')
Beispiel #3
0
def square_lattice(onsite=(0, 0)):
    a1 = np.array([1, 0])
    a2 = np.array([0, 1])
    lat = pb.Lattice(a1=a1, a2=a2)
    lat.add_sublattices(('A', [0, 0], onsite[0]))
    lat.add_hoppings(
        ([1, 0], 'A', 'A', - 1),
        ([0, 1], 'A', 'A', - 1)
    )

    return lat

nx = ny = 4
lx = ly = 256
moments = 512
lattice = square_lattice()

configuration = kite.Configuration(divisions=[nx, ny], length=[lx, ly], boundaries=[True, True],
                                   is_complex=True, precision=1, spectrum_range=[-4.1,4.1])

b1, b2 = lattice.reciprocal_vectors()
Gamma = [0, 0]
K1 = b1[0:2] + b2[0:2]
points = [Gamma, K1]

k_path = pb.results.make_path(*points, step=0.01)

calculation_arpes = kite.Calculation(configuration)
calculation_arpes.arpes(k_vector=k_path, num_moments=moments, num_disorder=1)
kite.config_system(lattice, configuration, calculation_arpes, filename='config.h5')