This commit is contained in:
2023-11-07 03:38:46 +08:00
parent 1e7c4c0e68
commit bc3890c25b
212 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import numpy as np
from math import *
# import os
# os.chdir('D:/data') # 设置路径
def hamiltonian(k):
pass
def main():
k = np.arange(-pi, pi, 0.05)
plot_bands_one_dimension(k, hamiltonian)
def plot_bands_one_dimension(k, hamiltonian):
import matplotlib.pyplot as plt
dim = hamiltonian(0).shape[0]
dim_k = k.shape[0]
eigenvalue_k = np.zeros((dim_k, dim))
i0 = 0
for k0 in k:
matrix0 = hamiltonian(k0)
eigenvalue, eigenvector = np.linalg.eig(matrix0)
eigenvalue_k[i0, :] = np.sort(np.real(eigenvalue[:]))
i0 += 1
for dim0 in range(dim):
plt.plot(k, eigenvalue_k[:, dim0], '-k')
plt.xlabel('k')
plt.ylabel('E')
plt.show()
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,47 @@
import numpy as np
from math import *
# import os
# os.chdir('D:/data') # 设置路径
def hamiltonian(k1, k2):
pass
def main():
k1 = np.arange(-pi, pi, 0.05)
k2 = np.arange(-pi, pi, 0.05)
plot_bands_two_dimension(k1, k2, hamiltonian)
def plot_bands_two_dimension(k1, k2, hamiltonian):
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
dim = hamiltonian(0, 0).shape[0]
dim1 = k1.shape[0]
dim2 = k2.shape[0]
eigenvalue_k = np.zeros((dim2, dim1, dim))
i0 = 0
for k20 in k2:
j0 = 0
for k10 in k1:
matrix0 = hamiltonian(k10, k20)
eigenvalue, eigenvector = np.linalg.eig(matrix0)
eigenvalue_k[i0, j0, :] = np.sort(np.real(eigenvalue[:]))
j0 += 1
i0 += 1
fig = plt.figure()
ax = fig.gca(projection='3d')
k1, k2 = np.meshgrid(k1, k2)
for dim0 in range(dim):
ax.plot_surface(k1, k2, eigenvalue_k[:, :, dim0], cmap=cm.coolwarm, linewidth=0, antialiased=False)
plt.xlabel('k1')
plt.ylabel('k2')
ax.set_zlabel('E')
plt.show()
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,31 @@
import numpy as np
from math import *
# import os
# os.chdir('D:/data') # 设置路径
def hamiltonian(k):
pass
def main():
k = np.arange(-pi, pi, 0.05)
write_bands_one_dimension(k, hamiltonian)
def write_bands_one_dimension(k, hamiltonian):
dim = hamiltonian(0).shape[0]
f = open('a.txt','w')
for k0 in k:
f.write(str(k0)+' ')
matrix0 = hamiltonian(k0)
eigenvalue, eigenvector = np.linalg.eig(matrix0)
eigenvalue = np.sort(np.real(eigenvalue))
for dim0 in range(dim):
f.write(str(eigenvalue[dim0])+' ')
f.write('\n')
f.close()
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,42 @@
import numpy as np
from math import *
# import os
# os.chdir('D:/data') # 设置路径
def hamiltonian(k1, k2):
pass
def main():
k1 = np.arange(-pi, pi, 0.05)
k2 = np.arange(-pi, pi, 0.05)
write_bands_two_dimension(k1, k2, hamiltonian)
def write_bands_two_dimension(k1, k2, hamiltonian):
f1 = open('a1.txt', 'w')
f2 = open('a2.txt', 'w')
f1.write('0 ')
f2.write('0 ')
for k10 in k1:
f1.write(str(k10)+' ')
f2.write(str(k10)+' ')
f1.write('\n')
f2.write('\n')
for k20 in k2:
f1.write(str(k20)+' ')
f2.write(str(k20)+' ')
for k10 in k1:
matrix0 = hamiltonian(k10, k20)
eigenvalue, eigenvector = np.linalg.eig(matrix0)
eigenvalue = np.sort(np.real(eigenvalue))
f1.write(str(eigenvalue[0])+' ')
f2.write(str(eigenvalue[1])+' ')
f1.write('\n')
f2.write('\n')
f1.close()
f2.close()
if __name__ == '__main__':
main()