This commit is contained in:
guanjihuan 2025-04-13 04:11:39 +08:00
parent b0e29a164a
commit f4a7e70c82
4 changed files with 19 additions and 11 deletions

View File

@ -1,7 +1,7 @@
[metadata] [metadata]
# replace with your username: # replace with your username:
name = guan name = guan
version = 0.1.176 version = 0.1.177
author = guanjihuan author = guanjihuan
author_email = guanjihuan@163.com author_email = guanjihuan@163.com
description = An open source python package description = An open source python package

View File

@ -1,6 +1,6 @@
Metadata-Version: 2.4 Metadata-Version: 2.4
Name: guan Name: guan
Version: 0.1.176 Version: 0.1.177
Summary: An open source python package Summary: An open source python package
Home-page: https://py.guanjihuan.com Home-page: https://py.guanjihuan.com
Author: guanjihuan Author: guanjihuan

View File

@ -1,12 +1,15 @@
# Module: band_structures_and_wave_functions # Module: band_structures_and_wave_functions
# 计算哈密顿量的本征值 # 计算哈密顿量的本征值
def calculate_eigenvalue(hamiltonian): def calculate_eigenvalue(hamiltonian, hermitian=True):
import numpy as np import numpy as np
if np.array(hamiltonian).shape==(): if np.array(hamiltonian).shape==():
eigenvalue = np.real(hamiltonian) eigenvalue = np.real(hamiltonian)
else: else:
eigenvalue, eigenvector = np.linalg.eigh(hamiltonian) if hermitian:
eigenvalue, eigenvector = np.linalg.eigh(hamiltonian)
else:
eigenvalue, eigenvector = np.linalg.eig(hamiltonian)
return eigenvalue return eigenvalue
# 输入哈密顿量函数(带一组参数),计算一组参数下的本征值,返回本征值向量组 # 输入哈密顿量函数(带一组参数),计算一组参数下的本征值,返回本征值向量组
@ -65,10 +68,13 @@ def calculate_eigenvalue_with_two_parameters(x_array, y_array, hamiltonian_funct
i0 += 1 i0 += 1
return eigenvalue_array return eigenvalue_array
# 计算哈密顿量的本征矢(厄密矩阵) # 计算哈密顿量的本征矢
def calculate_eigenvector(hamiltonian): def calculate_eigenvector(hamiltonian, hermitian=True):
import numpy as np import numpy as np
eigenvalue, eigenvector = np.linalg.eigh(hamiltonian) if hermitian:
eigenvalue, eigenvector = np.linalg.eigh(hamiltonian)
else:
eigenvalue, eigenvector = np.linalg.eig(hamiltonian)
return eigenvector return eigenvector
# 施密特正交化 # 施密特正交化

View File

@ -1,7 +1,7 @@
# Module: file_reading_and_writing # Module: file_reading_and_writing
# 使用pickle将变量保存到文件支持几乎所有对象类型 # 使用pickle将变量保存到文件支持几乎所有对象类型
def dump_data(data, filename, file_format='.pkl'): def dump_data(data, filename='a', file_format='.pkl'):
import pickle import pickle
with open(filename+file_format, 'wb') as f: with open(filename+file_format, 'wb') as f:
pickle.dump(data, f) pickle.dump(data, f)
@ -14,7 +14,7 @@ def load_data(filename, file_format='.pkl'):
return data return data
# 使用NumPy保存数组变量到npy文件二进制文件 # 使用NumPy保存数组变量到npy文件二进制文件
def save_npy_data(data, filename): def save_npy_data(data, filename='a'):
import numpy as np import numpy as np
np.save(filename+'.npy', data) np.save(filename+'.npy', data)
@ -25,7 +25,7 @@ def load_npy_data(filename):
return data return data
# 使用NumPy保存数组变量到TXT文件文本文件 # 使用NumPy保存数组变量到TXT文件文本文件
def save_txt_data(data, filename): def save_txt_data(data, filename='a'):
import numpy as np import numpy as np
np.savetxt(filename+'.txt', data) np.savetxt(filename+'.txt', data)
@ -421,13 +421,15 @@ def write_matrix_in_markdown_format(matrix, filename='a'):
dim_0 = matrix.shape[0] dim_0 = matrix.shape[0]
dim_1 = matrix.shape[1] dim_1 = matrix.shape[1]
with open(filename+'.md', 'w', encoding='UTF-8') as f: with open(filename+'.md', 'w', encoding='UTF-8') as f:
f.write(f'| Row\Column ')
for i1 in range(dim_1): for i1 in range(dim_1):
f.write(f'| column {i1+1} ') f.write(f'| column {i1+1} ')
f.write('|\n') f.write('|\n')
for i1 in range(dim_1): for i1 in range(dim_1+1):
f.write('| :---: ') f.write('| :---: ')
f.write('|\n') f.write('|\n')
for i0 in range(dim_0): for i0 in range(dim_0):
f.write(f'| row {i0+1} ')
for i1 in range(dim_1): for i1 in range(dim_1):
f.write(f'| {matrix[i0, i1]} ') f.write(f'| {matrix[i0, i1]} ')
f.write('|\n') f.write('|\n')