diff --git a/API_Reference/API_Reference.py b/API_Reference/API_Reference.py index f6f0339..5bbb72e 100644 --- a/API_Reference/API_Reference.py +++ b/API_Reference/API_Reference.py @@ -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) diff --git a/PyPI/setup.cfg b/PyPI/setup.cfg index cbe01d6..86ee9d3 100644 --- a/PyPI/setup.cfg +++ b/PyPI/setup.cfg @@ -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 diff --git a/PyPI/src/guan/__init__.py b/PyPI/src/guan/__init__.py index f8327a4..d6ae0dd 100644 --- a/PyPI/src/guan/__init__.py +++ b/PyPI/src/guan/__init__.py @@ -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