Compare commits
3 commits
tests/Grav
...
main
Author | SHA1 | Date | |
---|---|---|---|
438f3f024e | |||
7b1e7af3c5 | |||
d1e695e7e3 |
6 changed files with 40 additions and 15 deletions
|
@ -83,15 +83,28 @@ def plot_imshow_with_reference( data_list,
|
|||
axes[1, i].text(0.5, 0.9, f"Score: {score(data, reference):.2e}", fontsize=10, transform=axes[1, i].transAxes, color='white')
|
||||
# plt.tight_layout()
|
||||
else:
|
||||
for i, data in enumerate(data_list):
|
||||
im = axes[i].imshow(data, cmap=cmap, origin='lower', vmin=vmin, vmax=vmax)
|
||||
axes[i].set_title(titles[i], fontsize=fs_titles)
|
||||
axes[i].set_xticks(ticks[i])
|
||||
axes[i].set_yticks(ticks[i])
|
||||
axes[i].set_xticklabels(tick_labels[i])
|
||||
axes[i].set_yticklabels(tick_labels[i])
|
||||
axes[i].set_xlabel('Mpc/h')
|
||||
fig.colorbar(im, ax=axes[:], orientation='vertical')
|
||||
|
||||
if len(data_list) == 1:
|
||||
data_list = data_list[0]
|
||||
im = axes.imshow(data_list, cmap=cmap, origin='lower', vmin=vmin, vmax=vmax)
|
||||
axes.set_title(titles[0], fontsize=fs_titles)
|
||||
axes.set_xticks(ticks[0])
|
||||
axes.set_yticks(ticks[0])
|
||||
axes.set_xticklabels(tick_labels[0])
|
||||
axes.set_yticklabels(tick_labels[0])
|
||||
axes.set_xlabel('Mpc/h')
|
||||
fig.colorbar(im, ax=axes, orientation='vertical')
|
||||
|
||||
else:
|
||||
for i, data in enumerate(data_list):
|
||||
im = axes[i].imshow(data, cmap=cmap, origin='lower', vmin=vmin, vmax=vmax)
|
||||
axes[i].set_title(titles[i], fontsize=fs_titles)
|
||||
axes[i].set_xticks(ticks[i])
|
||||
axes[i].set_yticks(ticks[i])
|
||||
axes[i].set_xticklabels(tick_labels[i])
|
||||
axes[i].set_yticklabels(tick_labels[i])
|
||||
axes[i].set_xlabel('Mpc/h')
|
||||
fig.colorbar(im, ax=axes[:], orientation='vertical')
|
||||
|
||||
return fig, axes
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ def register_arguments_cosmo(parser:ArgumentParser):
|
|||
parser.add_argument("--m_nu3", type=float, default=0.0, help="Mass of the third neutrino species.")
|
||||
parser.add_argument("--w_0", type=float, default=-1.0, help="Dark energy equation of state parameter.")
|
||||
parser.add_argument("--w_a", type=float, default=0.0, help="Dark energy equation of state parameter.")
|
||||
parser.add_argument("--fnl", type=float, default=100.0, help="Local non-Gaussianity parameter.")
|
||||
parser.add_argument("--fnl", type=float, default=0.0, help="Local non-Gaussianity parameter.")
|
||||
parser.add_argument("--gnl", type=float, default=0.0, help="Equilateral non-Gaussianity parameter.")
|
||||
|
||||
|
||||
|
@ -84,7 +84,7 @@ cosmo_defaults = {
|
|||
"m_nu3": 0.0,
|
||||
"w_0": -1.0,
|
||||
"w_a": 0.0,
|
||||
"fnl": 100.0,
|
||||
"fnl": 0.0,
|
||||
"gnl": 0.0,
|
||||
"k_max":10.0,
|
||||
"tau_reio":0.06,
|
||||
|
|
4
main.py
4
main.py
|
@ -136,7 +136,7 @@ def main(parsed_args):
|
|||
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
|
||||
from scola import main_scola, main_pre_scola, main_post_scola, have_all_tiles
|
||||
|
||||
card_dict = main_parameter_card(parsed_args)
|
||||
|
||||
|
@ -177,7 +177,7 @@ def main(parsed_args):
|
|||
|
||||
print_message("Running sCOLA.", 1, "control", verbose=parsed_args.verbose)
|
||||
main_scola(parsed_args)
|
||||
if parsed_args.execution == "slurm":
|
||||
if parsed_args.execution == "slurm" and not have_all_tiles(parsed_args):
|
||||
from tqdm import tqdm
|
||||
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)):
|
||||
|
|
|
@ -9,6 +9,7 @@ def main_monofonic(parsed_args):
|
|||
|
||||
print_starting_module("monofonic", verbose=parsed_args.verbose)
|
||||
monofonic_dict=main_parameters_monofonic(parsed_args)
|
||||
# raise SystemExit # Exit the program after writing the config file to avoid running monofonic
|
||||
|
||||
if parsed_args.execution == "local":
|
||||
print_message("Running monofonic in local mode.", 1, "monofonic", verbose=parsed_args.verbose)
|
||||
|
|
|
@ -140,7 +140,6 @@ def main_parameters_monofonic(parsed_args):
|
|||
return monofonic_dict
|
||||
create_monofonic_config(monofonic_dict["config"], get_config_from_dict(monofonic_dict))
|
||||
print_message(f"Configuration file written to {monofonic_dict["config"]}", 2, "monofonic", verbose=parsed_args.verbose)
|
||||
|
||||
return monofonic_dict
|
||||
|
||||
|
||||
|
|
14
scola.py
14
scola.py
|
@ -1,3 +1,5 @@
|
|||
limit_slurm_arrays = 512
|
||||
|
||||
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
|
||||
|
@ -52,12 +54,14 @@ def main_scola(parsed_args):
|
|||
elif parsed_args.execution == "slurm":
|
||||
from slurm_submission import create_slurm_script, parse_arguments_slurm
|
||||
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)
|
||||
main_dict=parse_arguments_main(parsed_args)
|
||||
card_dict=parse_arguments_card(parsed_args)
|
||||
|
||||
if have_no_tiles(parsed_args) or parsed_args.force:
|
||||
if (have_no_tiles(parsed_args) or parsed_args.force) and card_dict["N_tiles"]**3 < limit_slurm_arrays :
|
||||
## Submit all boxes
|
||||
print_message("Submitting all boxes.", 2, "scola", verbose=parsed_args.verbose)
|
||||
slurm_script = slurm_dict["scripts"]+"scola_"+main_dict["simname"]+".sh"
|
||||
|
@ -93,6 +97,7 @@ def main_scola(parsed_args):
|
|||
|
||||
else:
|
||||
## Submit missing boxes
|
||||
from time import sleep
|
||||
missing_tiles_arrays = get_missing_tiles_arrays(parsed_args)
|
||||
print_message(f"Submitting missing boxes: {missing_tiles_arrays}.", 2, "scola", verbose=parsed_args.verbose)
|
||||
|
||||
|
@ -127,6 +132,7 @@ def main_scola(parsed_args):
|
|||
subprocess.run(command_args)
|
||||
|
||||
print_message("sCOLA job submitted.", 2, "scola", verbose=parsed_args.verbose)
|
||||
sleep(len(missing_tiles)*0.2) # Sleep for a bit to avoid overloading the scheduler
|
||||
|
||||
os.remove(slurm_script) # Remove the script after submission (because it is specific to the missing tiles)
|
||||
|
||||
|
@ -229,11 +235,17 @@ def get_missing_tiles_arrays(parsed_args):
|
|||
nboxes_tot = int(parsed_args.N_tiles**3)
|
||||
missing_tiles_arrays = []
|
||||
in_sequence_of_missing = False
|
||||
len_sequence_of_missing = 0
|
||||
for b in range(1,nboxes_tot+1):
|
||||
if not isfile(card_dict["OutputTilesBase"]+str(b)+".h5"):
|
||||
len_sequence_of_missing += 1
|
||||
if not in_sequence_of_missing:
|
||||
missing_tiles_arrays.append([b])
|
||||
in_sequence_of_missing = True
|
||||
len_sequence_of_missing = 1
|
||||
if len_sequence_of_missing > limit_slurm_arrays:
|
||||
missing_tiles_arrays[-1].append(b)
|
||||
in_sequence_of_missing = False
|
||||
elif in_sequence_of_missing:
|
||||
missing_tiles_arrays[-1].append(b-1)
|
||||
in_sequence_of_missing = False
|
||||
|
|
Loading…
Add table
Reference in a new issue