update
This commit is contained in:
		
							
								
								
									
										4
									
								
								Tutorial/test.py → Tutorial/0_test.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										4
									
								
								Tutorial/test.py → Tutorial/0_test.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,3 +1,3 @@ | ||||
| import gjh | ||||
| 
 | ||||
| import gjh | ||||
| 
 | ||||
| gjh.test() | ||||
							
								
								
									
										38
									
								
								Tutorial/Wilson_loop.py → Tutorial/10_Wilson_loop.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										38
									
								
								Tutorial/Wilson_loop.py → Tutorial/10_Wilson_loop.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,20 +1,20 @@ | ||||
| import gjh | ||||
| import numpy as np | ||||
| import cmath | ||||
| from math import * | ||||
| 
 | ||||
| def hamiltonian_function(k): # SSH model | ||||
|     gamma = 0.5 | ||||
|     lambda0 = 1 | ||||
|     delta = 0 | ||||
|     hamiltonian = np.zeros((2, 2), dtype=complex) | ||||
|     hamiltonian[0,0] = delta | ||||
|     hamiltonian[1,1] = -delta | ||||
|     hamiltonian[0,1] = gamma+lambda0*cmath.exp(-1j*k) | ||||
|     hamiltonian[1,0] = gamma+lambda0*cmath.exp(1j*k) | ||||
|     return hamiltonian | ||||
| 
 | ||||
| wilson_loop_array = gjh.calculate_wilson_loop(hamiltonian_function) | ||||
| print('wilson loop =', wilson_loop_array) | ||||
| p = np.log(wilson_loop_array)/2/pi/1j | ||||
| import gjh | ||||
| import numpy as np | ||||
| import cmath | ||||
| from math import * | ||||
| 
 | ||||
| def hamiltonian_function(k): # SSH model | ||||
|     gamma = 0.5 | ||||
|     lambda0 = 1 | ||||
|     delta = 0 | ||||
|     hamiltonian = np.zeros((2, 2), dtype=complex) | ||||
|     hamiltonian[0,0] = delta | ||||
|     hamiltonian[1,1] = -delta | ||||
|     hamiltonian[0,1] = gamma+lambda0*cmath.exp(-1j*k) | ||||
|     hamiltonian[1,0] = gamma+lambda0*cmath.exp(1j*k) | ||||
|     return hamiltonian | ||||
| 
 | ||||
| wilson_loop_array = gjh.calculate_wilson_loop(hamiltonian_function) | ||||
| print('wilson loop =', wilson_loop_array) | ||||
| p = np.log(wilson_loop_array)/2/pi/1j | ||||
| print('p =', p, '\n') | ||||
							
								
								
									
										38
									
								
								Tutorial/read_and_write.py → Tutorial/11_read_and_write.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										38
									
								
								Tutorial/read_and_write.py → Tutorial/11_read_and_write.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,20 +1,20 @@ | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| x = np.array([1, 2, 3]) | ||||
| y = np.array([5, 6, 7]) | ||||
| gjh.write_one_dimensional_data(x, y, filename='one_dimensional_data') | ||||
| 
 | ||||
| matrix = np.zeros((3, 3)) | ||||
| matrix[0, 1] = 11 | ||||
| gjh.write_two_dimensional_data(x, y, matrix, filename='two_dimensional_data') | ||||
| 
 | ||||
| 
 | ||||
| x_read, y_read = gjh.read_one_dimensional_data('one_dimensional_data') | ||||
| print(x_read, '\n') | ||||
| print(y_read, '\n\n') | ||||
| 
 | ||||
| x_read, y_read, matrix_read = gjh.read_two_dimensional_data('two_dimensional_data') | ||||
| print(x_read, '\n') | ||||
| print(y_read, '\n') | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| x = np.array([1, 2, 3]) | ||||
| y = np.array([5, 6, 7]) | ||||
| gjh.write_one_dimensional_data(x, y, filename='one_dimensional_data') | ||||
| 
 | ||||
| matrix = np.zeros((3, 3)) | ||||
| matrix[0, 1] = 11 | ||||
| gjh.write_two_dimensional_data(x, y, matrix, filename='two_dimensional_data') | ||||
| 
 | ||||
| 
 | ||||
| x_read, y_read = gjh.read_one_dimensional_data('one_dimensional_data') | ||||
| print(x_read, '\n') | ||||
| print(y_read, '\n\n') | ||||
| 
 | ||||
| x_read, y_read, matrix_read = gjh.read_two_dimensional_data('two_dimensional_data') | ||||
| print(x_read, '\n') | ||||
| print(y_read, '\n') | ||||
| print(matrix_read) | ||||
							
								
								
									
										5
									
								
								Tutorial/12_download.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								Tutorial/12_download.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| import gjh | ||||
|  | ||||
| gjh.download_with_scihub() | ||||
| # gjh.download_with_scihub('address') | ||||
| # gjh.download_with_scihub(num=3) | ||||
							
								
								
									
										10
									
								
								Tutorial/Pauli_matrix.py → Tutorial/1_Pauli_matrix.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										10
									
								
								Tutorial/Pauli_matrix.py → Tutorial/1_Pauli_matrix.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,6 +1,6 @@ | ||||
| import gjh | ||||
| 
 | ||||
| print('sigma_0:\n', gjh.sigma_0(), '\n') | ||||
| print('sigma_x:\n', gjh.sigma_x(), '\n') | ||||
| print('sigma_y:\n', gjh.sigma_y(), '\n') | ||||
| import gjh | ||||
| 
 | ||||
| print('sigma_0:\n', gjh.sigma_0(), '\n') | ||||
| print('sigma_x:\n', gjh.sigma_x(), '\n') | ||||
| print('sigma_y:\n', gjh.sigma_y(), '\n') | ||||
| print('sigma_z:\n', gjh.sigma_z(), '\n') | ||||
							
								
								
									
										8
									
								
								Tutorial/Hamiltonian_of_finite_size.py → Tutorial/2_Hamiltonian_of_finite_size.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										8
									
								
								Tutorial/Hamiltonian_of_finite_size.py → Tutorial/2_Hamiltonian_of_finite_size.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,5 +1,5 @@ | ||||
| import gjh | ||||
| 
 | ||||
| print(gjh.finite_size_along_one_direction(3), '\n') | ||||
| print(gjh.finite_size_along_two_directions_for_square_lattice(2, 2), '\n') | ||||
| import gjh | ||||
| 
 | ||||
| print(gjh.finite_size_along_one_direction(3), '\n') | ||||
| print(gjh.finite_size_along_two_directions_for_square_lattice(2, 2), '\n') | ||||
| print(gjh.finite_size_along_three_directions_for_cubic_lattice(2, 2, 2), '\n') | ||||
							
								
								
									
										36
									
								
								Tutorial/Fourier_transform_and_band_structures.py → Tutorial/3_Fourier_transform_and_band_structures.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										36
									
								
								Tutorial/Fourier_transform_and_band_structures.py → Tutorial/3_Fourier_transform_and_band_structures.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,19 +1,19 @@ | ||||
| import gjh | ||||
| import numpy as np | ||||
| from math import * | ||||
| import functools | ||||
| 
 | ||||
| x = np.linspace(-pi, pi, 100) | ||||
| y = np.linspace(-pi, pi, 100) | ||||
| 
 | ||||
| hamiltonian_function = functools.partial(gjh.one_dimensional_fourier_transform, unit_cell=0, hopping=1) | ||||
| eigenvalue_array = gjh.calculate_eigenvalue_with_one_parameter(x, hamiltonian_function) | ||||
| gjh.plot(x, eigenvalue_array, xlabel='k', ylabel='E', type='-o') | ||||
| 
 | ||||
| hamiltonian_function = functools.partial(gjh.two_dimensional_fourier_transform_for_square_lattice, unit_cell=0, hopping_1=1, hopping_2=1) | ||||
| eigenvalue_array = gjh.calculate_eigenvalue_with_two_parameters(x, y, hamiltonian_function) | ||||
| gjh.plot_3d_surface(x, y, eigenvalue_array, xlabel='kx', ylabel='ky', zlabel='E') | ||||
| 
 | ||||
| hamiltonian_function = functools.partial(gjh.three_dimensional_fourier_transform_for_cubic_lattice, k3=0, unit_cell=0, hopping_1=1, hopping_2=1, hopping_3=1) | ||||
| eigenvalue_array = gjh.calculate_eigenvalue_with_two_parameters(x, y, hamiltonian_function) | ||||
| import gjh | ||||
| import numpy as np | ||||
| from math import * | ||||
| import functools | ||||
| 
 | ||||
| x = np.linspace(-pi, pi, 100) | ||||
| y = np.linspace(-pi, pi, 100) | ||||
| 
 | ||||
| hamiltonian_function = functools.partial(gjh.one_dimensional_fourier_transform, unit_cell=0, hopping=1) | ||||
| eigenvalue_array = gjh.calculate_eigenvalue_with_one_parameter(x, hamiltonian_function) | ||||
| gjh.plot(x, eigenvalue_array, xlabel='k', ylabel='E', type='-o') | ||||
| 
 | ||||
| hamiltonian_function = functools.partial(gjh.two_dimensional_fourier_transform_for_square_lattice, unit_cell=0, hopping_1=1, hopping_2=1) | ||||
| eigenvalue_array = gjh.calculate_eigenvalue_with_two_parameters(x, y, hamiltonian_function) | ||||
| gjh.plot_3d_surface(x, y, eigenvalue_array, xlabel='kx', ylabel='ky', zlabel='E') | ||||
| 
 | ||||
| hamiltonian_function = functools.partial(gjh.three_dimensional_fourier_transform_for_cubic_lattice, k3=0, unit_cell=0, hopping_1=1, hopping_2=1, hopping_3=1) | ||||
| eigenvalue_array = gjh.calculate_eigenvalue_with_two_parameters(x, y, hamiltonian_function) | ||||
| gjh.plot_3d_surface(x, y, eigenvalue_array, xlabel='kx', ylabel='ky', zlabel='E') | ||||
							
								
								
									
										22
									
								
								Tutorial/bands_of_zigzag_graphene.py → Tutorial/4_bands_of_zigzag_graphene.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										22
									
								
								Tutorial/bands_of_zigzag_graphene.py → Tutorial/4_bands_of_zigzag_graphene.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,12 +1,12 @@ | ||||
| import gjh | ||||
| import numpy as np | ||||
| from math import * | ||||
| import functools | ||||
| 
 | ||||
| x = np.linspace(-pi, pi, 100) | ||||
| Ny = 10 | ||||
| unit_cell = gjh.finite_size_along_two_directions_for_graphene(1, Ny) | ||||
| hopping = gjh.hopping_along_zigzag_direction_for_graphene(Ny) | ||||
| hamiltonian_function = functools.partial(gjh.one_dimensional_fourier_transform, unit_cell=unit_cell, hopping=hopping) | ||||
| eigenvalue_array = gjh.calculate_eigenvalue_with_one_parameter(x, hamiltonian_function) | ||||
| import gjh | ||||
| import numpy as np | ||||
| from math import * | ||||
| import functools | ||||
| 
 | ||||
| x = np.linspace(-pi, pi, 100) | ||||
| Ny = 10 | ||||
| unit_cell = gjh.finite_size_along_two_directions_for_graphene(1, Ny) | ||||
| hopping = gjh.hopping_along_zigzag_direction_for_graphene(Ny) | ||||
| hamiltonian_function = functools.partial(gjh.one_dimensional_fourier_transform, unit_cell=unit_cell, hopping=hopping) | ||||
| eigenvalue_array = gjh.calculate_eigenvalue_with_one_parameter(x, hamiltonian_function) | ||||
| gjh.plot(x, eigenvalue_array, xlabel='k', ylabel='E') | ||||
							
								
								
									
										12
									
								
								Tutorial/total_density_of_states.py → Tutorial/5_total_density_of_states.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										12
									
								
								Tutorial/total_density_of_states.py → Tutorial/5_total_density_of_states.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,7 +1,7 @@ | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| hamiltonian = gjh.finite_size_along_two_directions_for_square_lattice(2,2) | ||||
| fermi_energy_array = np.linspace(-4, 4, 400) | ||||
| total_dos_array = gjh.total_density_of_states_with_fermi_energy_array(fermi_energy_array, hamiltonian, broadening=0.1) | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| hamiltonian = gjh.finite_size_along_two_directions_for_square_lattice(2,2) | ||||
| fermi_energy_array = np.linspace(-4, 4, 400) | ||||
| total_dos_array = gjh.total_density_of_states_with_fermi_energy_array(fermi_energy_array, hamiltonian, broadening=0.1) | ||||
| gjh.plot(fermi_energy_array, total_dos_array, xlabel='E', ylabel='Total DOS', type='-o') | ||||
							
								
								
									
										54
									
								
								Tutorial/local_density_of_states.py → Tutorial/6_local_density_of_states.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										54
									
								
								Tutorial/local_density_of_states.py → Tutorial/6_local_density_of_states.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,28 +1,28 @@ | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| fermi_energy = 0 | ||||
| N1 = 3 | ||||
| N2 = 4 | ||||
| hamiltonian = gjh.finite_size_along_two_directions_for_square_lattice(N1,N2) | ||||
| LDOS = gjh.local_density_of_states_for_square_lattice(fermi_energy, hamiltonian, N1=N1, N2=N2) | ||||
| print('square lattice:\n', LDOS, '\n') | ||||
| 
 | ||||
| h00 = gjh.finite_size_along_one_direction(N2) | ||||
| h01 = np.identity(N2) | ||||
| LDOS = gjh.local_density_of_states_for_square_lattice_using_dyson_equation(fermi_energy, h00=h00, h01=h01, N2=N2, N1=N1) | ||||
| print(LDOS, '\n\n') | ||||
| gjh.plot_contour(range(N1), range(N2), LDOS) | ||||
| 
 | ||||
| 
 | ||||
| N1 = 3 | ||||
| N2 = 4 | ||||
| N3 = 5 | ||||
| hamiltonian = gjh.finite_size_along_three_directions_for_cubic_lattice(N1, N2, N3) | ||||
| LDOS = gjh.local_density_of_states_for_cubic_lattice(fermi_energy, hamiltonian, N1=N1, N2=N2, N3=N3) | ||||
| print('cubic lattice:\n', LDOS, '\n') | ||||
| 
 | ||||
| h00 = gjh.finite_size_along_two_directions_for_square_lattice(N2, N3) | ||||
| h01 = np.identity(N2*N3) | ||||
| LDOS = gjh.local_density_of_states_for_cubic_lattice_using_dyson_equation(fermi_energy, h00, h01, N3=N3, N2=N2, N1=N1) | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| fermi_energy = 0 | ||||
| N1 = 3 | ||||
| N2 = 4 | ||||
| hamiltonian = gjh.finite_size_along_two_directions_for_square_lattice(N1,N2) | ||||
| LDOS = gjh.local_density_of_states_for_square_lattice(fermi_energy, hamiltonian, N1=N1, N2=N2) | ||||
| print('square lattice:\n', LDOS, '\n') | ||||
| 
 | ||||
| h00 = gjh.finite_size_along_one_direction(N2) | ||||
| h01 = np.identity(N2) | ||||
| LDOS = gjh.local_density_of_states_for_square_lattice_using_dyson_equation(fermi_energy, h00=h00, h01=h01, N2=N2, N1=N1) | ||||
| print(LDOS, '\n\n') | ||||
| gjh.plot_contour(range(N1), range(N2), LDOS) | ||||
| 
 | ||||
| 
 | ||||
| N1 = 3 | ||||
| N2 = 4 | ||||
| N3 = 5 | ||||
| hamiltonian = gjh.finite_size_along_three_directions_for_cubic_lattice(N1, N2, N3) | ||||
| LDOS = gjh.local_density_of_states_for_cubic_lattice(fermi_energy, hamiltonian, N1=N1, N2=N2, N3=N3) | ||||
| print('cubic lattice:\n', LDOS, '\n') | ||||
| 
 | ||||
| h00 = gjh.finite_size_along_two_directions_for_square_lattice(N2, N3) | ||||
| h01 = np.identity(N2*N3) | ||||
| LDOS = gjh.local_density_of_states_for_cubic_lattice_using_dyson_equation(fermi_energy, h00, h01, N3=N3, N2=N2, N1=N1) | ||||
| print(LDOS) | ||||
							
								
								
									
										14
									
								
								Tutorial/conductance.py → Tutorial/7_conductance.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										14
									
								
								Tutorial/conductance.py → Tutorial/7_conductance.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,8 +1,8 @@ | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| fermi_energy_array = np.linspace(-5, 5, 400) | ||||
| h00 = gjh.finite_size_along_one_direction(4) | ||||
| h01 = np.identity(4) | ||||
| conductance_array = gjh.calculate_conductance_with_fermi_energy_array(fermi_energy_array, h00, h01) | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| fermi_energy_array = np.linspace(-5, 5, 400) | ||||
| h00 = gjh.finite_size_along_one_direction(4) | ||||
| h01 = np.identity(4) | ||||
| conductance_array = gjh.calculate_conductance_with_fermi_energy_array(fermi_energy_array, h00, h01) | ||||
| gjh.plot(fermi_energy_array, conductance_array, xlabel='E', ylabel='Conductance', type='-o') | ||||
							
								
								
									
										12
									
								
								Tutorial/scattering_matrix.py → Tutorial/8_scattering_matrix.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										12
									
								
								Tutorial/scattering_matrix.py → Tutorial/8_scattering_matrix.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,7 +1,7 @@ | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| fermi_energy = 0 | ||||
| h00 = gjh.finite_size_along_one_direction(4) | ||||
| h01 = np.identity(4) | ||||
| import gjh | ||||
| import numpy as np | ||||
| 
 | ||||
| fermi_energy = 0 | ||||
| h00 = gjh.finite_size_along_one_direction(4) | ||||
| h01 = np.identity(4) | ||||
| gjh.print_or_write_scattering_matrix(fermi_energy, h00, h01) | ||||
							
								
								
									
										34
									
								
								Tutorial/Chern_number.py → Tutorial/9_Chern_number.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										34
									
								
								Tutorial/Chern_number.py → Tutorial/9_Chern_number.py
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -1,18 +1,18 @@ | ||||
| import gjh | ||||
| import numpy as np | ||||
| from math import * | ||||
| 
 | ||||
| def hamiltonian_function(kx, ky):  # one QAH model with chern number 2 | ||||
|     t1 = 1.0 | ||||
|     t2 = 1.0 | ||||
|     t3 = 0.5 | ||||
|     m = -1.0 | ||||
|     hamiltonian = np.zeros((2, 2), dtype=complex) | ||||
|     hamiltonian[0, 1] = 2*t1*cos(kx)-1j*2*t1*cos(ky) | ||||
|     hamiltonian[1, 0] = 2*t1*cos(kx)+1j*2*t1*cos(ky) | ||||
|     hamiltonian[0, 0] = m+2*t3*sin(kx)+2*t3*sin(ky)+2*t2*cos(kx+ky) | ||||
|     hamiltonian[1, 1] = -(m+2*t3*sin(kx)+2*t3*sin(ky)+2*t2*cos(kx+ky)) | ||||
|     return hamiltonian | ||||
| 
 | ||||
| chern_number = gjh.calculate_chern_number_for_square_lattice(hamiltonian_function, precision=100) | ||||
| import gjh | ||||
| import numpy as np | ||||
| from math import * | ||||
| 
 | ||||
| def hamiltonian_function(kx, ky):  # one QAH model with chern number 2 | ||||
|     t1 = 1.0 | ||||
|     t2 = 1.0 | ||||
|     t3 = 0.5 | ||||
|     m = -1.0 | ||||
|     hamiltonian = np.zeros((2, 2), dtype=complex) | ||||
|     hamiltonian[0, 1] = 2*t1*cos(kx)-1j*2*t1*cos(ky) | ||||
|     hamiltonian[1, 0] = 2*t1*cos(kx)+1j*2*t1*cos(ky) | ||||
|     hamiltonian[0, 0] = m+2*t3*sin(kx)+2*t3*sin(ky)+2*t2*cos(kx+ky) | ||||
|     hamiltonian[1, 1] = -(m+2*t3*sin(kx)+2*t3*sin(ky)+2*t2*cos(kx+ky)) | ||||
|     return hamiltonian | ||||
| 
 | ||||
| chern_number = gjh.calculate_chern_number_for_square_lattice(hamiltonian_function, precision=100) | ||||
| print(chern_number) | ||||
		Reference in New Issue
	
	Block a user
	 guanjihuan
					guanjihuan