diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c58046d --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# Ignore some symbolic links +install + +# Ignore specific directories and files +.ipynb_checkpoints/ +*/.ipynb_checkpoints/ +.vscode/ +*.pyc +__pycache__/ +sbmy_control.egg-info/ +*.h5 \ No newline at end of file diff --git a/sbmy_control.egg-info/PKG-INFO b/sbmy_control.egg-info/PKG-INFO deleted file mode 100644 index f3ef9c4..0000000 --- a/sbmy_control.egg-info/PKG-INFO +++ /dev/null @@ -1,35 +0,0 @@ -Metadata-Version: 2.4 -Name: sbmy_control -Version: 0.1.0 -Summary: Simbelmyne control package -Home-page: https://git.aquila-consortium.org/maubin/sbmy_control -Author: Mayeul Aubin -Author-email: mayeul.aubin@iap.fr -License: GPL-3.0 -Classifier: Development Status :: 3 - Alpha -Classifier: Intended Audience :: Science/Research -Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3) -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Requires-Python: >=3.8 -Description-Content-Type: text/markdown -Requires-Dist: pysbmy -Requires-Dist: numpy -Requires-Dist: matplotlib -Requires-Dist: h5py -Requires-Dist: tqdm -Dynamic: author -Dynamic: author-email -Dynamic: classifier -Dynamic: description -Dynamic: description-content-type -Dynamic: home-page -Dynamic: license -Dynamic: requires-dist -Dynamic: requires-python -Dynamic: summary - -This package provides control functionalities for Simbelmyne. It allows to create automatically all the required files and scripts to run a N-body simulation with Simbelmyne, using monofonIC for initial conditions. The subpackage `analysis` provides tools to analyze the results of the simulation (slices and power spectra), while the subpackage `scripts` includes tools to handle snapshots, tiles and density fields. diff --git a/sbmy_control.egg-info/SOURCES.txt b/sbmy_control.egg-info/SOURCES.txt deleted file mode 100644 index 5fadffd..0000000 --- a/sbmy_control.egg-info/SOURCES.txt +++ /dev/null @@ -1,30 +0,0 @@ -setup.py -sbmy_control/ICs.py -sbmy_control/__init__.py -sbmy_control/args_main.py -sbmy_control/cosmo_params.py -sbmy_control/low_level.py -sbmy_control/main.py -sbmy_control/monofonic.py -sbmy_control/parameters_card.py -sbmy_control/parameters_monofonic.py -sbmy_control/progress_bar.py -sbmy_control/scola.py -sbmy_control/simbelmyne.py -sbmy_control/slurm_submission.py -sbmy_control/timestepping.py -sbmy_control.egg-info/PKG-INFO -sbmy_control.egg-info/SOURCES.txt -sbmy_control.egg-info/dependency_links.txt -sbmy_control.egg-info/entry_points.txt -sbmy_control.egg-info/requires.txt -sbmy_control.egg-info/top_level.txt -sbmy_control/analysis/__init__.py -sbmy_control/analysis/colormaps.py -sbmy_control/analysis/power_spectrum.py -sbmy_control/analysis/slices.py -sbmy_control/scripts/__init__.py -sbmy_control/scripts/convert_snapshot_to_density.py -sbmy_control/scripts/field_to_field.py -sbmy_control/scripts/gather_tiles.py -sbmy_control/scripts/scola_submit.py \ No newline at end of file diff --git a/sbmy_control.egg-info/dependency_links.txt b/sbmy_control.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/sbmy_control.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/sbmy_control.egg-info/entry_points.txt b/sbmy_control.egg-info/entry_points.txt deleted file mode 100644 index 2481b2f..0000000 --- a/sbmy_control.egg-info/entry_points.txt +++ /dev/null @@ -1,8 +0,0 @@ -[console_scripts] -convert_snapshot_to_density = sbmy_control.scripts.convert_snapshot_to_density:console_main -field_to_field = sbmy_control.scripts.field_to_field:console_main -gather_tiles = sbmy_control.scripts.gather_tiles:console_main -power_spectrum = sbmy_control.analysis.power_spectrum:console_main -sbmy_control = sbmy_control.main:console_main -scola_submit = sbmy_control.scripts.scola_submit:console_main -slices = sbmy_control.analysis.slices:console_main diff --git a/sbmy_control.egg-info/requires.txt b/sbmy_control.egg-info/requires.txt deleted file mode 100644 index ad720a3..0000000 --- a/sbmy_control.egg-info/requires.txt +++ /dev/null @@ -1,5 +0,0 @@ -pysbmy -numpy -matplotlib -h5py -tqdm diff --git a/sbmy_control.egg-info/top_level.txt b/sbmy_control.egg-info/top_level.txt deleted file mode 100644 index 8f3970f..0000000 --- a/sbmy_control.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -sbmy_control diff --git a/sbmy_control/.gitignore b/sbmy_control/.gitignore deleted file mode 100644 index b6e6a4f..0000000 --- a/sbmy_control/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -# Ignore feature_* directory (usually used as git worktree) -feature_*/ - -# Ignore extensions directory -extensions/* -!extensions/__init__.py - -# Ignore some symbolic links -install - -# Ignore specific directories and files -.ipynb_checkpoints/ -*/.ipynb_checkpoints/ -.vscode/ -*.pyc -__pycache__/ -pysbmy.egg-info/ -*.h5 -*.rng -*.gadget1 -*.gadget2 -*.gadget3 -log.txt -testpdf.txt -tests/ -params/ -results/ -slurm_logs/ -slurm_scripts/ -work/ diff --git a/sbmy_control/ICs.py b/sbmy_control/ICs.py index 188e6c8..daa8cb8 100644 --- a/sbmy_control/ICs.py +++ b/sbmy_control/ICs.py @@ -3,9 +3,9 @@ def main_ICs(parsed_args): """ Main function for the initial conditions generator. """ - from args_main import parse_arguments_main - from parameters_card import parse_arguments_card_for_ICs - from low_level import print_starting_module, print_message, print_ending_module + from .args_main import parse_arguments_main + from .parameters_card import parse_arguments_card_for_ICs + from .low_level import print_starting_module, print_message, print_ending_module from os.path import isfile main_dict = parse_arguments_main(parsed_args) @@ -52,10 +52,10 @@ def main_ICs(parsed_args): def ICs_monofonic(parsed_args): - from monofonic import main_monofonic + from .monofonic import main_monofonic from os.path import isfile - from low_level import print_message - from parameters_monofonic import parse_arguments_monofonic + from .low_level import print_message + from .parameters_monofonic import parse_arguments_monofonic monofonic_dict = parse_arguments_monofonic(parsed_args) @@ -67,9 +67,9 @@ def ICs_monofonic(parsed_args): def ICs_sbmy(parsed_args): - from low_level import print_starting_module, print_message + from .low_level import print_starting_module, print_message from os.path import isfile - from parameters_card import parse_arguments_card_for_ICs + from .parameters_card import parse_arguments_card_for_ICs print_starting_module("sbmy IC", verbose=parsed_args.verbose) @@ -99,14 +99,14 @@ def ICs_sbmy(parsed_args): def create_sbmy_power_spectrum_file(parsed_args, card_dict, power_spectrum_file): - from cosmo_params import parse_arguments_cosmo + from .cosmo_params import parse_arguments_cosmo from pysbmy.power import PowerSpectrum cosmo_dict = parse_arguments_cosmo(parsed_args) if parsed_args.verbose < 2: from io import BytesIO - from low_level import stdout_redirector, stderr_redirector + from .low_level import stdout_redirector, stderr_redirector f = BytesIO() g = BytesIO() with stdout_redirector(f): @@ -138,7 +138,7 @@ def create_sbmy_power_spectrum_file(parsed_args, card_dict, power_spectrum_file) def create_sbmy_white_noise_field(parsed_args, card_dict, white_noise_field_file): import numpy as np from gc import collect - from low_level import print_message + from .low_level import print_message from pysbmy.field import BaseField print_message(f"Seed: {parsed_args.seed}", 3, "sbmy IC", verbose=parsed_args.verbose) @@ -161,7 +161,7 @@ def create_sbmy_white_noise_field(parsed_args, card_dict, white_noise_field_file if parsed_args.verbose < 2: from io import BytesIO - from low_level import stdout_redirector, stderr_redirector + from .low_level import stdout_redirector, stderr_redirector f = BytesIO() g = BytesIO() with stdout_redirector(f): @@ -175,11 +175,11 @@ def create_sbmy_white_noise_field(parsed_args, card_dict, white_noise_field_file if __name__ == "__main__": from argparse import ArgumentParser - from args_main import register_arguments_main - from parameters_card import register_arguments_card_for_ICs - from cosmo_params import register_arguments_cosmo - from parameters_monofonic import register_arguments_monofonic - from slurm_submission import register_arguments_slurm + from .args_main import register_arguments_main + from .parameters_card import register_arguments_card_for_ICs + from .cosmo_params import register_arguments_cosmo + from .parameters_monofonic import register_arguments_monofonic + from .slurm_submission import register_arguments_slurm parser = ArgumentParser(description="Generate initial conditions for a Simbelmyne simulation.") # TODO: reduce the volume of arguments @@ -190,4 +190,4 @@ if __name__ == "__main__": register_arguments_cosmo(parser) parsed_args = parser.parse_args() - main_ICs(parsed_args) \ No newline at end of file + main_ICs(parsed_args) diff --git a/sbmy_control/analysis/slices.py b/sbmy_control/analysis/slices.py index cb78bbc..9c8f5a5 100755 --- a/sbmy_control/analysis/slices.py +++ b/sbmy_control/analysis/slices.py @@ -2,7 +2,6 @@ import numpy as np import sys import os -sys.path.append('/home/aubin/Simbelmyne/sbmy_control/') fs = 18 fs_titles = fs - 4 @@ -40,7 +39,7 @@ def plot_imshow_with_reference( data_list, """ import matplotlib.pyplot as plt - from colormaps import register_colormaps + from sbmy_control.analysis.colormaps import register_colormaps register_colormaps(plt.colormaps) if titles is None: @@ -109,7 +108,7 @@ def plot_imshow_diff(data_list, import matplotlib.pyplot as plt - from colormaps import register_colormaps + from sbmy_control.analysis.colormapss import register_colormaps register_colormaps(plt.colormaps) if reference is None: diff --git a/sbmy_control/main.py b/sbmy_control/main.py index a3e7859..8bb7ff0 100644 --- a/sbmy_control/main.py +++ b/sbmy_control/main.py @@ -1,9 +1,9 @@ def main(parsed_args): - from low_level import print_starting_module, print_message, print_ending_module, wait_until_file_exists + from .low_level import print_starting_module, print_message, print_ending_module, wait_until_file_exists from os.path import isfile - from args_main import parse_arguments_main + from .args_main import parse_arguments_main print_starting_module("control", verbose=parsed_args.verbose) main_dict = parse_arguments_main(parsed_args) @@ -12,22 +12,22 @@ def main(parsed_args): case "ICs" | "InitialConditions" | "InitialConditionsGenerator" | "ICsGenerator" | "ICsGen" | "ini": print_message("Running initial conditions generator.", 1, "control", verbose=parsed_args.verbose) - from ICs import main_ICs + from .ICs import main_ICs main_ICs(parsed_args) print_message("Initial conditions generator finished.", 1, "control", verbose=parsed_args.verbose) case "TS" | "timestepping": print_message("Running timestepping generator.", 1, "control", verbose=parsed_args.verbose) - from timestepping import main_timestepping + from .timestepping import main_timestepping main_timestepping(parsed_args) print_message("Timestepping generator finished.", 1, "control", verbose=parsed_args.verbose) case "PM" | "LPT" | "tCOLA" | "simbelmyne" | "sbmy": print_message(f"Running Simbelmyne in mode {main_dict["mode"]}.", 1, "control", verbose=parsed_args.verbose) - from simbelmyne import main_simbelmyne - from parameters_card import parse_arguments_card + from .simbelmyne import main_simbelmyne + from .parameters_card import parse_arguments_card from os.path import isfile card_dict = parse_arguments_card(parsed_args) @@ -47,8 +47,8 @@ def main(parsed_args): case "pre_sCOLA": print_message("Running pre-sCOLA.", 1, "control", verbose=parsed_args.verbose) - from scola import main_pre_scola - from parameters_card import parse_arguments_card + from .scola import main_pre_scola + from .parameters_card import parse_arguments_card card_dict = parse_arguments_card(parsed_args) @@ -60,8 +60,8 @@ def main(parsed_args): case "post_sCOLA": print_message("Running post-sCOLA.", 1, "control", verbose=parsed_args.verbose) - from scola import main_post_scola - from parameters_card import parse_arguments_card + from .scola import main_post_scola + from .parameters_card import parse_arguments_card card_dict = parse_arguments_card(parsed_args) @@ -73,8 +73,8 @@ def main(parsed_args): case "sCOLA": print_message("Running sCOLA.", 1, "control", verbose=parsed_args.verbose) - from scola import main_scola - from parameters_card import parse_arguments_card + from .scola import main_scola + from .parameters_card import parse_arguments_card card_dict = parse_arguments_card(parsed_args) @@ -86,12 +86,12 @@ def main(parsed_args): case "alltCOLA" | "allPM": print_message(f"Running ICs and Simbelmyne in mode {main_dict["mode"]}.", 1, "control", verbose=parsed_args.verbose) - from parameters_card import parse_arguments_card, main_parameter_card - from timestepping import main_timestepping - from ICs import main_ICs - from simbelmyne import main_simbelmyne + from .parameters_card import parse_arguments_card, main_parameter_card + from .timestepping import main_timestepping + from .ICs import main_ICs + from .simbelmyne import main_simbelmyne from os.path import isfile - from low_level import wait_until_file_exists + from .low_level import wait_until_file_exists card_dict = main_parameter_card(parsed_args) @@ -101,7 +101,7 @@ def main(parsed_args): ## Check consistency of ICs_gen and ICs if main_dict["ICs_gen"] == "monofonic": - from parameters_monofonic import parse_arguments_monofonic + from .parameters_monofonic import parse_arguments_monofonic monofonic_dict = parse_arguments_monofonic(parsed_args) if monofonic_dict["output"]+"DM_delta.h5" != card_dict["ICs"]: raise ValueError(f"ICs {card_dict['ICs']} does not match monofonic output {monofonic_dict['output']+'DM_delta.h5'}") @@ -133,10 +133,10 @@ def main(parsed_args): case "allsCOLA": print_message(f"Running ICs, pre_sCOLA, sCOLA and post_sCOLA.", 1, "control", verbose=parsed_args.verbose) - from parameters_card import parse_arguments_card, main_parameter_card - from timestepping import main_timestepping - from ICs import main_ICs - from scola import main_scola, main_pre_scola, main_post_scola, have_all_tiles + from .parameters_card import parse_arguments_card, main_parameter_card + from .timestepping import main_timestepping + from .ICs import main_ICs + from .scola import main_scola, main_pre_scola, main_post_scola, have_all_tiles card_dict = main_parameter_card(parsed_args) @@ -146,7 +146,7 @@ def main(parsed_args): ## Check consistency of ICs_gen and OutputLPTPotential if main_dict["ICs_gen"] == "monofonic": - from parameters_monofonic import parse_arguments_monofonic + from .parameters_monofonic import parse_arguments_monofonic monofonic_dict = parse_arguments_monofonic(parsed_args) if monofonic_dict["output"]+"DM_phi.h5" != card_dict["OutputLPTPotential1"]: raise ValueError(f"OutputLPTPotential1 {card_dict['OutputLPTPotential1']} does not match monofonic output {monofonic_dict['output']+'DM_phi.h5'}") @@ -179,7 +179,7 @@ def main(parsed_args): main_scola(parsed_args) if parsed_args.execution == "slurm" and not have_all_tiles(parsed_args): from tqdm import tqdm - from low_level import progress_bar_from_logfile + from .low_level import progress_bar_from_logfile for b in tqdm(range(1,parsed_args.N_tiles**3+1), desc="sCOLA", unit="box", disable=(parsed_args.verbose==0)): progress_bar_from_logfile(main_dict["logdir"]+main_dict["simname"]+".log_"+str(b), desc=f"Box {b}/{parsed_args.N_tiles**3}", verbose=parsed_args.verbose, leave=False) print_message("sCOLA finished.", 1, "control", verbose=parsed_args.verbose) @@ -222,13 +222,13 @@ def check_consistency(card_dict, mode): def console_main(): from argparse import ArgumentParser - from args_main import register_arguments_main - from timestepping import register_arguments_timestepping, main_timestepping - from parameters_card import register_arguments_card, main_parameter_card - from cosmo_params import register_arguments_cosmo - from parameters_monofonic import register_arguments_monofonic - from slurm_submission import register_arguments_slurm - from low_level import wait_until_file_exists + from .args_main import register_arguments_main + from .timestepping import register_arguments_timestepping, main_timestepping + from .parameters_card import register_arguments_card, main_parameter_card + from .cosmo_params import register_arguments_cosmo + from .parameters_monofonic import register_arguments_monofonic + from .slurm_submission import register_arguments_slurm + from .low_level import wait_until_file_exists parser = ArgumentParser(description="Run sCOLA.") register_arguments_main(parser) diff --git a/sbmy_control/monofonic.py b/sbmy_control/monofonic.py index 4fe11ee..134b55b 100644 --- a/sbmy_control/monofonic.py +++ b/sbmy_control/monofonic.py @@ -2,8 +2,8 @@ path_to_monofonic_binary = "/home/aubin/monofonic/build/monofonIC" def main_monofonic(parsed_args): - from parameters_monofonic import main_parameters_monofonic - from low_level import print_starting_module, print_message, print_ending_module + from .parameters_monofonic import main_parameters_monofonic + from .low_level import print_starting_module, print_message, print_ending_module from os.path import isfile import subprocess @@ -27,8 +27,8 @@ def main_monofonic(parsed_args): print_message("Monofonic finished.", 1, "monofonic", verbose=parsed_args.verbose) elif parsed_args.execution == "slurm": - from slurm_submission import create_slurm_script, parse_arguments_slurm - from args_main import parse_arguments_main + from .slurm_submission import create_slurm_script, parse_arguments_slurm + from .args_main import parse_arguments_main print_message("Running monofonic in slurm mode.", 1, "monofonic", verbose=parsed_args.verbose) slurm_dict=parse_arguments_slurm(parsed_args) main_dict=parse_arguments_main(parsed_args) @@ -67,11 +67,11 @@ def main_monofonic(parsed_args): if __name__ == "__main__": from argparse import ArgumentParser - from parameters_monofonic import register_arguments_monofonic - from args_main import register_arguments_main - from parameters_card import register_arguments_card_for_ICs - from cosmo_params import register_arguments_cosmo - from slurm_submission import register_arguments_slurm + from .parameters_monofonic import register_arguments_monofonic + from .args_main import register_arguments_main + from .parameters_card import register_arguments_card_for_ICs + from .cosmo_params import register_arguments_cosmo + from .slurm_submission import register_arguments_slurm parser = ArgumentParser(description="Run monofonIC initial conditions generator for a Simbelmyne simulation.") # TODO: reduce the volume of arguments @@ -82,4 +82,4 @@ if __name__ == "__main__": register_arguments_cosmo(parser) parsed_args = parser.parse_args() - main_monofonic(parsed_args) \ No newline at end of file + main_monofonic(parsed_args) diff --git a/sbmy_control/parameters_card.py b/sbmy_control/parameters_card.py index cb1a14b..dc6d383 100644 --- a/sbmy_control/parameters_card.py +++ b/sbmy_control/parameters_card.py @@ -73,8 +73,8 @@ def parse_arguments_card(parsed_args): """ Parse the arguments for the parameter card. """ - from args_main import parse_arguments_main - from cosmo_params import parse_arguments_cosmo + from .args_main import parse_arguments_main + from .cosmo_params import parse_arguments_cosmo cosmo_dict=parse_arguments_cosmo(parsed_args) card_dict=dict( @@ -212,7 +212,7 @@ def parse_arguments_card_for_ICs(parsed_args): """ Parse the arguments for the parameter card for ICs. """ - from args_main import parse_arguments_main + from .args_main import parse_arguments_main main_dict = parse_arguments_main(parsed_args) card_dict = dict( @@ -252,7 +252,7 @@ def parse_arguments_card_for_timestepping(parsed_args): """ Parse the arguments for the parameter card for timestepping. """ - from args_main import parse_arguments_main + from .args_main import parse_arguments_main main_dict = parse_arguments_main(parsed_args) card_dict = dict( @@ -401,7 +401,7 @@ def write_parameter_card(parameter_card_dict:dict, filename:str, verbose:int = 1 if verbose < 2: from io import BytesIO - from low_level import stdout_redirector, stderr_redirector + from .low_level import stdout_redirector, stderr_redirector f = BytesIO() g = BytesIO() @@ -420,7 +420,7 @@ def main_parameter_card(parsed_args): """ Main function for the parameter card. """ - from low_level import print_message, print_starting_module, print_ending_module + from .low_level import print_message, print_starting_module, print_ending_module print_starting_module("card", verbose=parsed_args.verbose) print_message("Parsing arguments for the parameter card.", 1, "card", verbose=parsed_args.verbose) card_dict = parse_arguments_card(parsed_args) @@ -436,8 +436,8 @@ def main_parameter_card(parsed_args): return card_dict if __name__ == "__main__": - from args_main import register_arguments_main - from cosmo_params import register_arguments_cosmo + from .args_main import register_arguments_main + from .cosmo_params import register_arguments_cosmo parser = ArgumentParser(description="Create sbmy parameter card.") register_arguments_main(parser) @@ -445,4 +445,4 @@ if __name__ == "__main__": register_arguments_cosmo(parser) parsed_args = parser.parse_args() - main_parameter_card(parsed_args) \ No newline at end of file + main_parameter_card(parsed_args) diff --git a/sbmy_control/parameters_monofonic.py b/sbmy_control/parameters_monofonic.py index e9a50d9..e4a2169 100644 --- a/sbmy_control/parameters_monofonic.py +++ b/sbmy_control/parameters_monofonic.py @@ -16,9 +16,9 @@ def parse_arguments_monofonic(parsed_args): """ Parse the arguments for the monofonIC parameters. """ - from args_main import parse_arguments_main - from parameters_card import parse_arguments_card_for_ICs - from cosmo_params import parse_arguments_cosmo + from .args_main import parse_arguments_main + from .parameters_card import parse_arguments_card_for_ICs + from .cosmo_params import parse_arguments_cosmo main_dict = parse_arguments_main(parsed_args) card_dict = parse_arguments_card_for_ICs(parsed_args) @@ -131,7 +131,7 @@ def get_config_from_dict(monofonic_dict): def main_parameters_monofonic(parsed_args): - from low_level import print_message + from .low_level import print_message print_message("Parsing arguments for the config file.", 1, "monofonic", verbose=parsed_args.verbose) monofonic_dict = parse_arguments_monofonic(parsed_args) @@ -144,9 +144,9 @@ def main_parameters_monofonic(parsed_args): if __name__ == "__main__": - from args_main import register_arguments_main - from parameters_card import register_arguments_card_for_ICs - from cosmo_params import register_arguments_cosmo + from .args_main import register_arguments_main + from .parameters_card import register_arguments_card_for_ICs + from .cosmo_params import register_arguments_cosmo parser = ArgumentParser(description="Create monofonIC configuration file.") register_arguments_main(parser) @@ -155,4 +155,4 @@ if __name__ == "__main__": register_arguments_cosmo(parser) parsed_args = parser.parse_args() - main_parameters_monofonic(parsed_args) \ No newline at end of file + main_parameters_monofonic(parsed_args) diff --git a/sbmy_control/progress_bar.py b/sbmy_control/progress_bar.py index 5155b20..b61fa8b 100644 --- a/sbmy_control/progress_bar.py +++ b/sbmy_control/progress_bar.py @@ -1,7 +1,7 @@ if __name__ == "__main__": from argparse import ArgumentParser from tqdm import tqdm - from low_level import progress_bar_from_logfile + from .low_level import progress_bar_from_logfile parser = ArgumentParser(description="Progress bar from log files.") parser.add_argument("-l","--logdir", type=str, help="Log directory.") @@ -12,4 +12,4 @@ if __name__ == "__main__": parsed_args = parser.parse_args() for b in tqdm(range(1,parsed_args.N_tiles**3+1), desc="sCOLA", unit="box", disable=(parsed_args.verbose==0)): - progress_bar_from_logfile(parsed_args.logdir+parsed_args.simname+".log_"+str(b), desc=f"Box {b}/{parsed_args.N_tiles**3}", verbose=parsed_args.verbose, leave=False) \ No newline at end of file + progress_bar_from_logfile(parsed_args.logdir+parsed_args.simname+".log_"+str(b), desc=f"Box {b}/{parsed_args.N_tiles**3}", verbose=parsed_args.verbose, leave=False) diff --git a/sbmy_control/scola.py b/sbmy_control/scola.py index 54f64bc..5f646f1 100644 --- a/sbmy_control/scola.py +++ b/sbmy_control/scola.py @@ -1,8 +1,8 @@ def main_scola(parsed_args): - from args_main import parse_arguments_main - from low_level import print_starting_module, print_message, print_ending_module, progress_bar_from_logfile, wait_until_file_exists + from .args_main import parse_arguments_main + from .low_level import print_starting_module, print_message, print_ending_module, progress_bar_from_logfile, wait_until_file_exists from os.path import isfile import subprocess @@ -21,7 +21,7 @@ def main_scola(parsed_args): return if parsed_args.execution == "local": - from parameters_card import parse_arguments_card + from .parameters_card import parse_arguments_card from tqdm import tqdm card_dict = parse_arguments_card(parsed_args) print_message("Running sCOLA in local mode.", 1, "scola", verbose=parsed_args.verbose) @@ -52,9 +52,9 @@ def main_scola(parsed_args): print_message("sCOLA finished.", 1, "scola", verbose=parsed_args.verbose) elif parsed_args.execution == "slurm": - from slurm_submission import create_slurm_script, parse_arguments_slurm, limit_slurm_arrays - from args_main import parse_arguments_main - from parameters_card import parse_arguments_card + from .slurm_submission import create_slurm_script, parse_arguments_slurm, limit_slurm_arrays + from .args_main import parse_arguments_main + from .parameters_card import parse_arguments_card import os print_message("Running scola in slurm mode.", 1, "scola", verbose=parsed_args.verbose) slurm_dict=parse_arguments_slurm(parsed_args) @@ -148,15 +148,15 @@ def main_pre_scola(parsed_args): If they already exist, it does nothing. If all tiles exist, raises error. """ from os.path import isfile - from low_level import print_starting_module, print_message, print_ending_module - from parameters_card import parse_arguments_card + from .low_level import print_starting_module, print_message, print_ending_module + from .parameters_card import parse_arguments_card print_starting_module("pre-scola", verbose=parsed_args.verbose) card_dict = parse_arguments_card(parsed_args) if not isfile(card_dict["OutputLPTPotential1"]) or not isfile(card_dict["OutputLPTPotential2"]) or parsed_args.force: if not have_all_tiles(parsed_args): print_message("Running pre-scola.", 1, "pre-scola", verbose=parsed_args.verbose) - from simbelmyne import main_simbelmyne + from .simbelmyne import main_simbelmyne main_simbelmyne(parsed_args) else: raise NotImplementedError("All tiles exists, so calling simbelmyne would generate the final output instead of the LPT potentials.") @@ -172,8 +172,8 @@ def main_post_scola(parsed_args): If the output already exists, it does nothing. If tiles are missing, print the missing tiles. """ from os.path import isfile - from low_level import print_starting_module, print_message, print_ending_module - from parameters_card import parse_arguments_card + from .low_level import print_starting_module, print_message, print_ending_module + from .parameters_card import parse_arguments_card print_starting_module("post-scola", verbose=parsed_args.verbose) card_dict = parse_arguments_card(parsed_args) @@ -186,7 +186,7 @@ def main_post_scola(parsed_args): if (card_dict["WriteFinalDensity"] and not isfile(card_dict["OutputFinalDensity"])) or (card_dict["WriteFinalSnapshot"] and not isfile(card_dict["OutputFinalSnapshot"])) or parsed_args.force: if have_all_tiles(parsed_args): print_message("Running post-scola.", 1, "post-scola", verbose=parsed_args.verbose) - from simbelmyne import main_simbelmyne + from .simbelmyne import main_simbelmyne main_simbelmyne(parsed_args) else: missing_tiles_arrays = get_missing_tiles_arrays(parsed_args) @@ -203,7 +203,7 @@ def main_post_scola(parsed_args): def have_all_tiles(parsed_args): from os.path import isfile - from parameters_card import parse_arguments_card + from .parameters_card import parse_arguments_card card_dict = parse_arguments_card(parsed_args) nboxes_tot = int(parsed_args.N_tiles**3) @@ -216,7 +216,7 @@ def have_all_tiles(parsed_args): def have_no_tiles(parsed_args): from os.path import isfile - from parameters_card import parse_arguments_card + from .parameters_card import parse_arguments_card card_dict = parse_arguments_card(parsed_args) nboxes_tot = int(parsed_args.N_tiles**3) @@ -229,8 +229,8 @@ def have_no_tiles(parsed_args): def get_missing_tiles_arrays(parsed_args): from os.path import isfile - from parameters_card import parse_arguments_card - from slurm_submission import limit_slurm_arrays + from .parameters_card import parse_arguments_card + from .slurm_submission import limit_slurm_arrays card_dict = parse_arguments_card(parsed_args) nboxes_tot = int(parsed_args.N_tiles**3) @@ -260,13 +260,13 @@ def get_missing_tiles_arrays(parsed_args): if __name__ == "__main__": from argparse import ArgumentParser - from args_main import register_arguments_main - from timestepping import register_arguments_timestepping, main_timestepping - from parameters_card import register_arguments_card, main_parameter_card - from cosmo_params import register_arguments_cosmo - from parameters_monofonic import register_arguments_monofonic - from slurm_submission import register_arguments_slurm - from low_level import wait_until_file_exists + from .args_main import register_arguments_main + from .timestepping import register_arguments_timestepping, main_timestepping + from .parameters_card import register_arguments_card, main_parameter_card + from .cosmo_params import register_arguments_cosmo + from .parameters_monofonic import register_arguments_monofonic + from .slurm_submission import register_arguments_slurm + from .low_level import wait_until_file_exists parser = ArgumentParser(description="Run sCOLA.") register_arguments_main(parser) diff --git a/sbmy_control/simbelmyne.py b/sbmy_control/simbelmyne.py index effb375..a106ae9 100644 --- a/sbmy_control/simbelmyne.py +++ b/sbmy_control/simbelmyne.py @@ -1,6 +1,6 @@ def main_simbelmyne(parsed_args): - from args_main import parse_arguments_main - from low_level import print_starting_module, print_message, print_ending_module, progress_bar_from_logfile + from .args_main import parse_arguments_main + from .low_level import print_starting_module, print_message, print_ending_module, progress_bar_from_logfile from os.path import isfile import subprocess @@ -30,8 +30,8 @@ def main_simbelmyne(parsed_args): print_message("Simbelyne finished.", 1, "simbelmyne", verbose=parsed_args.verbose) elif parsed_args.execution == "slurm": - from slurm_submission import create_slurm_script, parse_arguments_slurm - from args_main import parse_arguments_main + from .slurm_submission import create_slurm_script, parse_arguments_slurm + from .args_main import parse_arguments_main print_message("Running simbelmyne in slurm mode.", 1, "simbelmyne", verbose=parsed_args.verbose) slurm_dict=parse_arguments_slurm(parsed_args) main_dict=parse_arguments_main(parsed_args) @@ -76,12 +76,12 @@ def main_simbelmyne(parsed_args): if __name__ == "__main__": from argparse import ArgumentParser - from args_main import register_arguments_main - from timestepping import register_arguments_timestepping, main_timestepping - from parameters_card import register_arguments_card, main_parameter_card - from cosmo_params import register_arguments_cosmo - from parameters_simbelmyne import register_arguments_simbelmyne - from slurm_submission import register_arguments_slurm + from .args_main import register_arguments_main + from .timestepping import register_arguments_timestepping, main_timestepping + from .parameters_card import register_arguments_card, main_parameter_card + from .cosmo_params import register_arguments_cosmo + from .parameters_simbelmyne import register_arguments_simbelmyne + from .slurm_submission import register_arguments_slurm parser = ArgumentParser(description="Run Simbelmyne.") register_arguments_main(parser) @@ -94,4 +94,4 @@ if __name__ == "__main__": main_parameter_card(parsed_args) main_timestepping(parsed_args) - main_simbelmyne(parsed_args) \ No newline at end of file + main_simbelmyne(parsed_args) diff --git a/sbmy_control/slurm_submission.py b/sbmy_control/slurm_submission.py index 78667ef..51dba4f 100644 --- a/sbmy_control/slurm_submission.py +++ b/sbmy_control/slurm_submission.py @@ -1,5 +1,5 @@ from argparse import ArgumentParser -from args_main import parse_arguments_main +from .args_main import parse_arguments_main path_to_monofonic_binary = "/home/aubin/monofonic/build/monofonIC" limit_slurm_arrays=799 diff --git a/sbmy_control/timestepping.py b/sbmy_control/timestepping.py index 38b73ab..5f7c9af 100644 --- a/sbmy_control/timestepping.py +++ b/sbmy_control/timestepping.py @@ -18,8 +18,8 @@ def parse_arguments_timestepping(parsed_args): """ Parse the arguments for the timestepping. """ - from parameters_card import parse_arguments_card_for_timestepping - from cosmo_params import parse_arguments_cosmo, z2a + from .parameters_card import parse_arguments_card_for_timestepping + from .cosmo_params import parse_arguments_cosmo, z2a card_dict = parse_arguments_card_for_timestepping(parsed_args) cosmo_dict = parse_arguments_cosmo(parsed_args) @@ -79,7 +79,7 @@ def create_timestepping(timestepping_dict, ts_filename:str, verbose:int=1): TS = StandardTimeStepping(**timestepping_dict) if verbose < 2: from io import BytesIO - from low_level import stdout_redirector, stderr_redirector + from .low_level import stdout_redirector, stderr_redirector f = BytesIO() g = BytesIO() with stdout_redirector(f): @@ -95,7 +95,7 @@ def main_timestepping(parsed_args): """ Main function for the timestepping. """ - from low_level import print_message, print_ending_module, print_starting_module + from .low_level import print_message, print_ending_module, print_starting_module print_starting_module("timestepping", verbose=parsed_args.verbose) print_message("Parsing arguments for the timestepping file.", 1, "timestepping", verbose=parsed_args.verbose) @@ -110,9 +110,9 @@ def main_timestepping(parsed_args): return timestepping_dict if __name__ == "__main__": - from args_main import register_arguments_main - from parameters_card import register_arguments_card_for_timestepping - from cosmo_params import register_arguments_cosmo + from .args_main import register_arguments_main + from .parameters_card import register_arguments_card_for_timestepping + from .cosmo_params import register_arguments_cosmo parser = ArgumentParser(description="Create timestepping file.") # TODO: reduce the volume of arguments @@ -121,4 +121,4 @@ if __name__ == "__main__": register_arguments_card_for_timestepping(parser) register_arguments_cosmo(parser) parsed_args = parser.parse_args() - main_timestepping(parsed_args) \ No newline at end of file + main_timestepping(parsed_args)