示例#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)
示例#2
0
文件: config.py 项目: yaoyongxin/kite
    # 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')
示例#3
0
e_max = +9.3

num_a1 = 640
num_a2 = 512

num_moments = 12000

# make config object which caries info about
# - the number of decomposition parts [nx, ny],
# - lengths of structure [lx, ly]
# - boundary conditions, setting True as periodic boundary conditions, and False elsewise,
# - info if the exported hopping and onsite data should be complex,
# - info of the precision of the exported hopping and onsite data, 0 - float, 1 - double, and 2 - long double.
configuration = kite.Configuration(divisions=[nx, ny],
                                   length=[num_a1, num_a2],
                                   boundaries=[True, True],
                                   is_complex=False,
                                   precision=0,
                                   spectrum_range=[e_min, e_max])

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

# export the lattice from the lattice object, config and calculation object and the name of the file
# the disorder is optional. If there is disorder in the lattice for now it should be given separately
kite.config_system(complete_lattice,
                   configuration,
                   calculation,
                   filename='dos_' + name[:-4] +
示例#4
0
disorder.add_disorder('B', 'Uniform', +0.0, 0.4)
# 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 = 1
# number of unit cells in each direction.
lx = ly = 256
# make config object which caries info about
# - the number of decomposition parts [nx, ny],
# - lengths of structure [lx, ly]
# - boundary conditions, setting True as periodic boundary conditions, and False elsewise,
# - info if the exported hopping and onsite data should be complex,
# - info of the precision of the exported hopping and onsite data, 0 - float, 1 - double, and 2 - long double.
# - scaling, if None it's automatic, if present select spectrum_bound=[e_min, e_max]
configuration = kite.Configuration(divisions=[nx, ny],
                                   length=[lx, ly],
                                   boundaries=[True, True],
                                   is_complex=True,
                                   precision=0)
calculation = kite.Calculation(configuration)
# require the calculation of DOS and conductivity_dc
calculation.dos(num_points=1000,
                num_moments=512,
                num_random=10,
                num_disorder=1)
calculation.conductivity_dc(num_points=1000,
                            num_moments=256,
                            num_random=50,
                            num_disorder=1,
                            direction='xy',
                            temperature=100)
# configure the *.h5 file
                        spinors.append(v)

    k_vector_rel = np.array(ks)
    spinor = np.array(spinors)
    print('size ', k_vector_rel, spinor)

    emin, emax = -3.03 * np.abs(t), 3.03 * np.abs(t)

    if use_disorder:
        emin -= 1.1 * np.abs(disorder_strength) / 2
        emax += 1.1 * np.abs(disorder_strength) / 2

    scale_a = (emax - emin) / 2
    configuration = kite.Configuration(divisions=[nx, ny],
                                       length=[lx, ly],
                                       boundaries=[True, True],
                                       is_complex=True,
                                       precision=1,
                                       spectrum_range=[emin, emax])

    # estimate the num moments
    num_moments = int(1.5 * 2.0 * scale_a * deltaT / hbar)

    calculation = kite.Calculation(configuration)
    calculation.gaussian_wave_packet(num_points=num_points,
                                     num_moments=num_moments,
                                     num_disorder=4,
                                     k_vector=k_vector_rel,
                                     spinor=spinor,
                                     width=sigma,
                                     timestep=scale_a * deltaT / hbar,
                                     mean_value=[int(lx / 2),
示例#6
0
    return lat


lattice = graphene_initial()

disorder = kite.Disorder(lattice)
disorder.add_disorder('B', 'Uniform', 0.0, W * 0.5 / np.sqrt(3))
disorder.add_disorder('A', 'Uniform', 0.0, W * 0.5 / np.sqrt(3))

nx = ny = 2

configuration = kite.Configuration(
    divisions=[nx, ny],
    length=[L, L],
    boundaries=[True, True],
    is_complex=False,
    precision=0,
    spectrum_range=[-energy_scale, energy_scale])

calculation = kite.Calculation(configuration)
calculation.singleshot_conductivity_dc(energy=[(n / 100.0 - 0.5) * 2
                                               for n in range(11)],
                                       num_moments=64,
                                       num_random=1,
                                       num_disorder=1,
                                       direction='xx',
                                       eta=0.02)
kite.config_system(lattice,
                   configuration,
                   calculation,
示例#7
0
# make a graphene lattice
lattice = graphene()
disorder = kite.Disorder(lattice)

#disorder.add_disorder('A', 'Uniform', +0.0, 0.5)
#disorder_struc = kite.StructuralDisorder(lattice, position=[1, 1])
#disorder_struc.add_vacancy('A')


# number of decomposition parts in each direction of matrix.
# This divides the lattice into various sections, each of which is calculated in parallel
nx = 1
ny = 1
nz = 2
# number of unit cells in each direction.
lx = ly = lz = 128
# make config object which caries info about
# - the number of decomposition parts [nx, ny],
# - lengths of structure [lx, ly]
# - boundary conditions, setting True as periodic boundary conditions, and False elsewise,
# - info if the exported hopping and onsite data should be complex,
# - info of the precision of the exported hopping and onsite data, 0 - float, 1 - double, and 2 - long double.
# - scaling, if None it's automatic, if present select spectrum_bound=[e_min, e_max]
configuration = kite.Configuration(divisions=[nx, ny, nz], length=[lx, ly, lz], boundaries=[True, True, True],
                                   is_complex=False, precision=1)
# require the calculation of DOS
calculation = kite.Calculation(configuration)
calculation.dos(num_points=1000, num_moments=128, num_random=1, num_disorder=1)
# configure the *.h5 file
kite.config_system(lattice, configuration, calculation, filename='example_initial.h5')
示例#8
0
    struc_disorder_one = kite.StructuralDisorder(lat, position=[[32, 32]])
    struc_disorder_one.add_structural_disorder(
        (*node0, *node1, timp), (*node0, *node2, timp), (*node0, *node3, timp),
        (*node0, limp))

    return lat, [struc_disorder_one]


lattice, disorded_structural = graphene_initial()

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

pos_matrix = []
sub_matrix = []
d1 = 32
d2 = 32
N = 64
for i in range(-5, 5):
    for j in range(-5, 5):
        pos_matrix.append([d1 + i, d2 + j])
        pos_matrix.append([d1 + i, d2 + j])
        sub_matrix.append('A')
        sub_matrix.append('B')
示例#9
0
    return lat


lattice = graphene_initial()

divX = 1
divY = 1
sizeX = 256
sizeY = 256
NumMoments = 512

energy_scale = 3.1
configuration = kite.Configuration(
    divisions=[divX, divY],
    length=[sizeX, sizeY],
    boundaries=[True, True],
    is_complex=False,
    precision=0,
    spectrum_range=[-energy_scale, energy_scale])

calculation = kite.Calculation(configuration)

calculation.conductivity_optical(num_points=256,
                                 num_moments=NumMoments,
                                 num_random=1,
                                 num_disorder=1,
                                 direction="xx",
                                 temperature=0.01)

kite.config_system(lattice,
                   configuration,