0.1.177
This commit is contained in:
parent
b0e29a164a
commit
f4a7e70c82
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
if hermitian:
|
||||||
eigenvalue, eigenvector = np.linalg.eigh(hamiltonian)
|
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
|
||||||
|
if hermitian:
|
||||||
eigenvalue, eigenvector = np.linalg.eigh(hamiltonian)
|
eigenvalue, eigenvector = np.linalg.eigh(hamiltonian)
|
||||||
|
else:
|
||||||
|
eigenvalue, eigenvector = np.linalg.eig(hamiltonian)
|
||||||
return eigenvector
|
return eigenvector
|
||||||
|
|
||||||
# 施密特正交化
|
# 施密特正交化
|
||||||
|
@ -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')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user