This commit is contained in:
guanjihuan 2022-02-13 15:45:22 +08:00
parent 2fa7ecd9b2
commit 195a267fcd
3 changed files with 65 additions and 34 deletions

View File

@ -231,10 +231,6 @@ guan.write_one_dimensional_data(x_array, y_array, filename='a', format='txt')
guan.write_two_dimensional_data(x_array, y_array, matrix, filename='a', format='txt')
# preprocess
parameter_array = guan.preprocess_for_parallel_calculations(parameter_array_all, cpus=1, task_index=0)
# plot figures
@ -247,6 +243,17 @@ guan.plot_contour(x_array, y_array, matrix, xlabel='x', ylabel='y', title='', sh
# preprocessing
parameter_array = guan.preprocess_for_parallel_calculations(parameter_array_all, cpus=1, task_index=0)
# bach processing
guan.bach_reading_and_plotting(directory, xlabel='x', ylabel='y')
# others
guan.download_with_scihub(address=None, num=1)

View File

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

View File

@ -12,16 +12,16 @@
# # Module 8: quantum_transport
# # Module 9: topological_invariant
# # Module 10: read_and_write
# # Module 11: preprocess
# # Module 12: plot_figures
# # Module 13: others
# # Module 11: plot_figures
# # Module 12: preprocess
# # Module 13: bach processing
# # Module 14: others
# import packages
import numpy as np
from math import *
import cmath
import functools
import copy
import guan
@ -131,14 +131,17 @@ def three_dimensional_fourier_transform_for_cubic_lattice(k1, k2, k3, unit_cell,
return hamiltonian
def one_dimensional_fourier_transform_with_k(unit_cell, hopping):
import functools
hamiltonian_function = functools.partial(guan.one_dimensional_fourier_transform, unit_cell=unit_cell, hopping=hopping)
return hamiltonian_function
def two_dimensional_fourier_transform_for_square_lattice_with_k1_k2(unit_cell, hopping_1, hopping_2):
import functools
hamiltonian_function = functools.partial(guan.two_dimensional_fourier_transform_for_square_lattice, unit_cell=unit_cell, hopping_1=hopping_1, hopping_2=hopping_2)
return hamiltonian_function
def three_dimensional_fourier_transform_for_cubic_lattice_with_k1_k2_k3(unit_cell, hopping_1, hopping_2, hopping_3):
import functools
hamiltonian_function = functools.partial(guan.three_dimensional_fourier_transform_for_cubic_lattice, unit_cell=unit_cell, hopping_1=hopping_1, hopping_2=hopping_2, hopping_3=hopping_3)
return hamiltonian_function
@ -1443,31 +1446,8 @@ def write_two_dimensional_data(x_array, y_array, matrix, filename='a', format='t
# Module 11: preprocess
def preprocess_for_parallel_calculations(parameter_array_all, cpus=1, task_index=0):
num_all = np.array(parameter_array_all).shape[0]
if num_all%cpus == 0:
num_parameter = int(num_all/cpus)
parameter_array = parameter_array_all[task_index*num_parameter:(task_index+1)*num_parameter]
else:
num_parameter = int(num_all/(cpus-1))
if task_index != cpus-1:
parameter_array = parameter_array_all[task_index*num_parameter:(task_index+1)*num_parameter]
else:
parameter_array = parameter_array_all[task_index*num_parameter:num_all]
return parameter_array
# Module 12: plot figures
# Module 11: plot figures
def plot(x_array, y_array, xlabel='x', ylabel='y', title='', show=1, save=0, filename='a', format='jpg', dpi=300, type='', y_min=None, y_max=None, linewidth=None, markersize=None):
import matplotlib.pyplot as plt
@ -1564,7 +1544,51 @@ def plot_contour(x_array, y_array, matrix, xlabel='x', ylabel='y', title='', sho
# Module 13: others
# Module 12: preprocessing
def preprocess_for_parallel_calculations(parameter_array_all, cpus=1, task_index=0):
num_all = np.array(parameter_array_all).shape[0]
if num_all%cpus == 0:
num_parameter = int(num_all/cpus)
parameter_array = parameter_array_all[task_index*num_parameter:(task_index+1)*num_parameter]
else:
num_parameter = int(num_all/(cpus-1))
if task_index != cpus-1:
parameter_array = parameter_array_all[task_index*num_parameter:(task_index+1)*num_parameter]
else:
parameter_array = parameter_array_all[task_index*num_parameter:num_all]
return parameter_array
# Module 13: bach processing
def bach_reading_and_plotting(directory, xlabel='x', ylabel='y'):
import re
import os
for root, dirs, files in os.walk(directory):
for file in files:
if re.search('^txt.', file[::-1]):
filename = file[:-4]
x_array, y_array = guan.read_one_dimensional_data(filename=filename)
guan.plot(x_array, y_array, xlabel=xlabel, ylabel=ylabel, title=filename, show=0, save=1, filename=filename)
# Module 14: others
## download