version 0.0.6
This commit is contained in:
		| @@ -25,6 +25,14 @@ sigma_zx = guan.sigma_zx() | ||||
| sigma_zy = guan.sigma_zy() | ||||
| sigma_zz = guan.sigma_zz() | ||||
|  | ||||
| # calculate reciprocal lattice vectors | ||||
| b1 = guan.calculate_one_dimensional_reciprocal_lattice_vector(a1) | ||||
| b1, b2 = guan.calculate_two_dimensional_reciprocal_lattice_vectors(a1, a2) | ||||
| b1, b2, b3 = guan.calculate_three_dimensional_reciprocal_lattice_vectors(a1, a2, a3) | ||||
| b1 = guan.calculate_one_dimensional_reciprocal_lattice_vector_with_sympy(a1) | ||||
| b1, b2 = guan.calculate_two_dimensional_reciprocal_lattice_vectors_with_sympy(a1, a2) | ||||
| b1, b2, b3 = guan.calculate_three_dimensional_reciprocal_lattice_vectors_with_sympy(a1, a2, a3) | ||||
|  | ||||
| # Fourier transform | ||||
| hamiltonian = guan.one_dimensional_fourier_transform(k, unit_cell, hopping) | ||||
| hamiltonian = guan.two_dimensional_fourier_transform_for_square_lattice(k1, k2, unit_cell, hopping_1, hopping_2) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| [metadata] | ||||
| # replace with your username: | ||||
| name = guan | ||||
| version = 0.0.4 | ||||
| version = 0.0.6 | ||||
| author = guanjihuan | ||||
| author_email = guanjihuan@163.com | ||||
| description = An open source python package | ||||
|   | ||||
| @@ -2,6 +2,7 @@ | ||||
|  | ||||
| from .test import * | ||||
| from .basic_functions import * | ||||
| from .calculate_reciprocal_lattice_vectors import * | ||||
| from .Fourier_transform import * | ||||
| from .Hamiltonian_of_finite_size import * | ||||
| from .Hamiltonian_of_models_in_the_reciprocal_space import * | ||||
|   | ||||
							
								
								
									
										55
									
								
								PyPI/src/guan/calculate_reciprocal_lattice_vectors.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								PyPI/src/guan/calculate_reciprocal_lattice_vectors.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| # calculate reciprocal lattice vectors | ||||
|  | ||||
| import numpy as np | ||||
| import sympy | ||||
| from math import * | ||||
|  | ||||
| def calculate_one_dimensional_reciprocal_lattice_vector(a1): | ||||
|     b1 = 2*pi/a1 | ||||
|     return b1 | ||||
|  | ||||
| def calculate_two_dimensional_reciprocal_lattice_vectors(a1, a2): | ||||
|     a1 = np.array(a1) | ||||
|     a2 = np.array(a2) | ||||
|     a1 = np.append(a1, 0) | ||||
|     a2 = np.append(a2, 0) | ||||
|     a3 = np.array([0, 0, 1]) | ||||
|     b1 = 2*pi*np.cross(a2, a3)/np.dot(a1, np.cross(a2, a3)) | ||||
|     b2 = 2*pi*np.cross(a3, a1)/np.dot(a1, np.cross(a2, a3)) | ||||
|     b1 = np.delete(b1, 2) | ||||
|     b2 = np.delete(b2, 2) | ||||
|     return b1, b2 | ||||
|  | ||||
| def calculate_three_dimensional_reciprocal_lattice_vectors(a1, a2, a3): | ||||
|     a1 = np.array(a1) | ||||
|     a2 = np.array(a2) | ||||
|     a3 = np.array(a3) | ||||
|     b1 = 2*pi*np.cross(a2, a3)/np.dot(a1, np.cross(a2, a3)) | ||||
|     b2 = 2*pi*np.cross(a3, a1)/np.dot(a1, np.cross(a2, a3)) | ||||
|     b3 = 2*pi*np.cross(a1, a2)/np.dot(a1, np.cross(a2, a3)) | ||||
|     return b1, b2, b3 | ||||
|  | ||||
| def calculate_one_dimensional_reciprocal_lattice_vector_with_sympy(a1): | ||||
|     b1 = 2*sympy.pi/a1 | ||||
|     return b1 | ||||
|  | ||||
| def calculate_two_dimensional_reciprocal_lattice_vectors_with_sympy(a1, a2): | ||||
|     a1 = sympy.Matrix(1, 3, [a1[0], a1[1], 0]) | ||||
|     a2 = sympy.Matrix(1, 3, [a2[0], a2[1], 0]) | ||||
|     a3 = sympy.Matrix(1, 3, [0, 0, 1]) | ||||
|     cross_a2_a3 = a2.cross(a3) | ||||
|     cross_a3_a1 = a3.cross(a1) | ||||
|     b1 = 2*sympy.pi*cross_a2_a3/a1.dot(cross_a2_a3) | ||||
|     b2 = 2*sympy.pi*cross_a3_a1/a1.dot(cross_a2_a3) | ||||
|     b1 = sympy.Matrix(1, 2, [b1[0], b1[1]]) | ||||
|     b2 = sympy.Matrix(1, 2, [b2[0], b2[1]]) | ||||
|     return b1, b2 | ||||
|  | ||||
| def calculate_three_dimensional_reciprocal_lattice_vectors_with_sympy(a1, a2, a3): | ||||
|     cross_a2_a3 = a2.cross(a3) | ||||
|     cross_a3_a1 = a3.cross(a1) | ||||
|     cross_a1_a2 = a1.cross(a2) | ||||
|     b1 = 2*sympy.pi*cross_a2_a3/a1.dot(cross_a2_a3) | ||||
|     b2 = 2*sympy.pi*cross_a3_a1/a1.dot(cross_a2_a3) | ||||
|     b3 = 2*sympy.pi*cross_a1_a2/a1.dot(cross_a2_a3) | ||||
|     return b1, b2, b3 | ||||
		Reference in New Issue
	
	Block a user
	 guanjihuan
					guanjihuan