([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)
# 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')
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] +
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),
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,
# 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')
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')
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,