Compare commits

...
Sign in to create a new pull request.

11 commits

6 changed files with 78 additions and 14 deletions

View file

@ -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') 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() # plt.tight_layout()
else: else:
for i, data in enumerate(data_list):
im = axes[i].imshow(data, cmap=cmap, origin='lower', vmin=vmin, vmax=vmax) if len(data_list) == 1:
axes[i].set_title(titles[i], fontsize=fs_titles) data_list = data_list[0]
axes[i].set_xticks(ticks[i]) im = axes.imshow(data_list, cmap=cmap, origin='lower', vmin=vmin, vmax=vmax)
axes[i].set_yticks(ticks[i]) axes.set_title(titles[0], fontsize=fs_titles)
axes[i].set_xticklabels(tick_labels[i]) axes.set_xticks(ticks[0])
axes[i].set_yticklabels(tick_labels[i]) axes.set_yticks(ticks[0])
axes[i].set_xlabel('Mpc/h') axes.set_xticklabels(tick_labels[0])
fig.colorbar(im, ax=axes[:], orientation='vertical') 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 return fig, axes

View file

@ -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("--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_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("--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.") parser.add_argument("--gnl", type=float, default=0.0, help="Equilateral non-Gaussianity parameter.")
@ -84,7 +84,7 @@ cosmo_defaults = {
"m_nu3": 0.0, "m_nu3": 0.0,
"w_0": -1.0, "w_0": -1.0,
"w_a": 0.0, "w_a": 0.0,
"fnl": 100.0, "fnl": 0.0,
"gnl": 0.0, "gnl": 0.0,
"k_max":10.0, "k_max":10.0,
"tau_reio":0.06, "tau_reio":0.06,

View file

@ -136,7 +136,7 @@ def main(parsed_args):
from parameters_card import parse_arguments_card, main_parameter_card from parameters_card import parse_arguments_card, main_parameter_card
from timestepping import main_timestepping from timestepping import main_timestepping
from ICs import main_ICs 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) 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) print_message("Running sCOLA.", 1, "control", verbose=parsed_args.verbose)
main_scola(parsed_args) 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 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)): for b in tqdm(range(1,parsed_args.N_tiles**3+1), desc="sCOLA", unit="box", disable=(parsed_args.verbose==0)):

View file

@ -9,6 +9,7 @@ def main_monofonic(parsed_args):
print_starting_module("monofonic", verbose=parsed_args.verbose) print_starting_module("monofonic", verbose=parsed_args.verbose)
monofonic_dict=main_parameters_monofonic(parsed_args) 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": if parsed_args.execution == "local":
print_message("Running monofonic in local mode.", 1, "monofonic", verbose=parsed_args.verbose) print_message("Running monofonic in local mode.", 1, "monofonic", verbose=parsed_args.verbose)

View file

@ -47,6 +47,15 @@ def register_arguments_card(parser:ArgumentParser):
parser.add_argument("--OutputFCsDensity", type=str, default=None, help="Output FCs density file.") parser.add_argument("--OutputFCsDensity", type=str, default=None, help="Output FCs density file.")
parser.add_argument("--OutputFCsSnapshot", type=str, default=None, help="Output FCs snapshot file.") parser.add_argument("--OutputFCsSnapshot", type=str, default=None, help="Output FCs snapshot file.")
parser.add_argument("--OutputRngStateLPT", type=str, default=None, help="Output RNG state file.") parser.add_argument("--OutputRngStateLPT", type=str, default=None, help="Output RNG state file.")
## Tests with phiBCs and density
parser.add_argument("--WriteGravPot", type=bool, default=False, help="Write gravitational potential.")
parser.add_argument("--OutputGravitationalPotentialBase", type=str, default=None, help="Output gravitational potential base.")
parser.add_argument("--MeshGravPot", type=int, default=None, help="Mesh for gravitational potential.")
parser.add_argument("--WriteDensity", type=bool, default=False, help="Write density.")
parser.add_argument("--OutputDensityBase", type=str, default=None, help="Output density base.")
parser.add_argument("--MeshDensity", type=int, default=None, help="Mesh for density.")
parser.add_argument("--LoadPhiBCs", type=bool, default=False, help="Load phiBCs.")
parser.add_argument("--InputPhiBCsBase", type=str, default=None, help="Input phiBCs file base.")
def register_arguments_card_for_ICs(parser:ArgumentParser): def register_arguments_card_for_ICs(parser:ArgumentParser):
@ -118,6 +127,16 @@ def parse_arguments_card(parsed_args):
OutputFCsDensity=parsed_args.OutputFCsDensity, OutputFCsDensity=parsed_args.OutputFCsDensity,
OutputFCsSnapshot=parsed_args.OutputFCsSnapshot, OutputFCsSnapshot=parsed_args.OutputFCsSnapshot,
OutputRngStateLPT=parsed_args.OutputRngStateLPT, OutputRngStateLPT=parsed_args.OutputRngStateLPT,
## Tests with phiBCs and density
WriteGravPot=parsed_args.WriteGravPot,
OutputGravitationalPotentialBase=parsed_args.OutputGravitationalPotentialBase,
MeshGravPot=parsed_args.MeshGravPot,
WriteDensity=parsed_args.WriteDensity,
OutputDensityBase=parsed_args.OutputDensityBase,
MeshDensity=parsed_args.MeshDensity,
LoadPhiBCs=parsed_args.LoadPhiBCs,
InputPhiBCsBase=parsed_args.InputPhiBCsBase,
## Cosmological parameters
h=cosmo_dict["h"], h=cosmo_dict["h"],
Omega_m=cosmo_dict["Omega_m"], Omega_m=cosmo_dict["Omega_m"],
Omega_b=cosmo_dict["Omega_b"], Omega_b=cosmo_dict["Omega_b"],
@ -203,6 +222,17 @@ def parse_arguments_card(parsed_args):
card_dict["OutputFCsSnapshot"] = main_dict["resultdir"]+"final_particles_"+main_dict["simname"]+".gadget3" card_dict["OutputFCsSnapshot"] = main_dict["resultdir"]+"final_particles_"+main_dict["simname"]+".gadget3"
if card_dict["OutputRngStateLPT"] is None: if card_dict["OutputRngStateLPT"] is None:
card_dict["OutputRngStateLPT"] = main_dict["workdir"]+"rng_state.h5" card_dict["OutputRngStateLPT"] = main_dict["workdir"]+"rng_state.h5"
## Tests with phiBCs and density
if card_dict["OutputGravitationalPotentialBase"] is None:
card_dict["OutputGravitationalPotentialBase"] = main_dict["workdir"]+"gravpot_"+main_dict["simname"]
if card_dict["MeshGravPot"] is None:
card_dict["MeshGravPot"] = card_dict["N_PM_mesh"]
if card_dict["OutputDensityBase"] is None:
card_dict["OutputDensityBase"] = main_dict["workdir"]+"density_"+main_dict["simname"]
if card_dict["MeshDensity"] is None:
card_dict["MeshDensity"] = card_dict["N_PM_mesh"]
if card_dict["InputPhiBCsBase"] is None:
card_dict["InputPhiBCsBase"] = main_dict["workdir"]+"gravpot_tCOLA"
return card_dict return card_dict
@ -321,6 +351,16 @@ def create_parameter_card_dict(
OutputFCsDensity:str = 'fcs_density.h5', OutputFCsDensity:str = 'fcs_density.h5',
OutputFCsSnapshot:str = 'fcs_particles.gadget3', OutputFCsSnapshot:str = 'fcs_particles.gadget3',
## Tests with phiBCs and density
WriteGravPot:bool = True,
OutputGravitationalPotentialBase:str = 'gravitational_potential.h5',
MeshGravPot:int = 128,
WriteDensity:bool = False,
OutputDensityBase:str = 'density.h5',
MeshDensity:int = 128,
LoadPhiBCs:bool = False,
InputPhiBCsBase:str = 'gravitational_potential.h5',
## Cosmological parameters ## Cosmological parameters
h:float = 0.6732, h:float = 0.6732,
Omega_m:float = 0.302, Omega_m:float = 0.302,
@ -381,6 +421,17 @@ def create_parameter_card_dict(
OutputLPTPotential1=OutputLPTPotential1, OutputLPTPotential1=OutputLPTPotential1,
OutputLPTPotential2=OutputLPTPotential2, OutputLPTPotential2=OutputLPTPotential2,
OutputTilesBase=OutputTilesBase, OutputTilesBase=OutputTilesBase,
# Tests with phiBCs and density
WriteGravPot=int(WriteGravPot),
OutputGravitationalPotentialBase=OutputGravitationalPotentialBase,
MeshGravPot=MeshGravPot,
WriteDensity=int(WriteDensity),
OutputDensityBase=OutputDensityBase,
MeshDensity=MeshDensity,
LoadPhiBCs=int(LoadPhiBCs),
InputPhiBCsBase=InputPhiBCsBase,
h=h, h=h,
Omega_m=Omega_m, Omega_m=Omega_m,
Omega_b=Omega_b, Omega_b=Omega_b,

View file

@ -140,7 +140,6 @@ def main_parameters_monofonic(parsed_args):
return monofonic_dict return monofonic_dict
create_monofonic_config(monofonic_dict["config"], get_config_from_dict(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) print_message(f"Configuration file written to {monofonic_dict["config"]}", 2, "monofonic", verbose=parsed_args.verbose)
return monofonic_dict return monofonic_dict