Create Chern_number_of_the_cross_section_plane_in_Weyl_semimetals_with_guan_package.py
This commit is contained in:
parent
f125b94ac3
commit
897d900c81
@ -0,0 +1,30 @@
|
||||
"""
|
||||
This code is supported by the website: https://www.guanjihuan.com
|
||||
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/6896
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
import guan
|
||||
import functools
|
||||
|
||||
def main():
|
||||
kz_array = np.arange(-np.pi, np.pi, 0.1)
|
||||
chern_number_array = []
|
||||
for kz in kz_array:
|
||||
print(kz)
|
||||
hamiltonian_function = functools.partial(hamiltonian, kz=kz)
|
||||
chern_number = guan.calculate_chern_number_for_square_lattice(hamiltonian_function)
|
||||
chern_number_array.append(chern_number)
|
||||
guan.plot(kz_array, chern_number_array, style='-o')
|
||||
|
||||
|
||||
def hamiltonian(kx,ky,kz): # Weyl semimetal
|
||||
A = 1
|
||||
M0 = 1
|
||||
M1 = 1
|
||||
H = A*(np.sin(kx)*guan.sigma_x()+np.sin(ky)*guan.sigma_y())+(M0-M1*(2*(1-np.cos(kx))+2*(1-np.cos(ky))+2*(1-np.cos(kz))))*guan.sigma_z()
|
||||
return H
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
x
Reference in New Issue
Block a user