minor; redefinition of the bend limiter pre-factor
This commit is contained in:
parent
34594a2bf6
commit
a5227d9113
8 changed files with 2642 additions and 2519 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -15690,7 +15690,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 15,
|
||||
"execution_count": null,
|
||||
"id": "c1c096bb",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
|
@ -15762,7 +15762,7 @@
|
|||
" ymin=3e-3,\n",
|
||||
" ymax=0.5,\n",
|
||||
" fac_hubble=fac_hubble,\n",
|
||||
" fac_bend=fac_bend * (2 ** sim_idx),\n",
|
||||
" fac_bend=fac_bend,\n",
|
||||
" da_max_early=da_early,\n",
|
||||
" da_max_late=DEFAULT_DA_MAX_LATE_CUSTOM,\n",
|
||||
" show=False,\n",
|
||||
|
|
|
@ -108,7 +108,7 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"id": "7126d1c8",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
|
@ -134,7 +134,7 @@
|
|||
"\n",
|
||||
"# Alternatively, let the user specify the parameters directly:\n",
|
||||
"fac_hubble_list = [0.02, 0.02]\n",
|
||||
"fac_bend_list = [0.04375/2, 0.04375]\n",
|
||||
"fac_bend_list = [0.3125/2, 0.3125]\n",
|
||||
"da_early_list = [0.0013, 0.0013]\n"
|
||||
]
|
||||
},
|
||||
|
|
|
@ -69,10 +69,10 @@ parser.add_argument(
|
|||
help="Whether to compute and plot the LPT power spectrum.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--scale_limiter",
|
||||
"--rescale_limiter",
|
||||
type=none_bool_str,
|
||||
default=False,
|
||||
help="Which limiter should be scaled by the scaling arguments? ",
|
||||
help="Which limiter should be affected by the mod_val argument? ",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--use_p3m_fit",
|
||||
|
@ -90,14 +90,14 @@ parser.add_argument(
|
|||
# Timestep settings per method
|
||||
for scheme in ["p3m1", "p3m2", "p3m3"]:
|
||||
parser.add_argument(
|
||||
f"--scaling_{scheme}",
|
||||
f"--mod_val_{scheme}",
|
||||
type=float,
|
||||
default={
|
||||
"p3m1": 1.,
|
||||
"p3m1": 1.0,
|
||||
"p3m2": 0.95,
|
||||
"p3m3": 0.9,
|
||||
}[scheme],
|
||||
help=f"Relax the step limiter by this factor for {scheme.upper()}.",
|
||||
help=f"Use this value value for the limiter indicated by rescale_limiter, for {scheme.upper()}.",
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
@ -115,10 +115,10 @@ if __name__ == "__main__":
|
|||
Np = args.Np
|
||||
Npm = args.Npm
|
||||
n_Tiles = args.n_Tiles
|
||||
scaling_p3m1 = args.scaling_p3m1
|
||||
scaling_p3m2 = args.scaling_p3m2
|
||||
scaling_p3m3 = args.scaling_p3m3
|
||||
name_scaled = args.scale_limiter
|
||||
mod_val_p3m1 = args.mod_val_p3m1
|
||||
mod_val_p3m2 = args.mod_val_p3m2
|
||||
mod_val_p3m3 = args.mod_val_p3m3
|
||||
name_scaled = args.rescale_limiter
|
||||
use_p3m_fit = args.use_p3m_fit
|
||||
if name_scaled is not False and name_scaled not in [
|
||||
"fac_dyn_custom",
|
||||
|
@ -144,9 +144,9 @@ if __name__ == "__main__":
|
|||
logger.info(f"Number of tiles: {n_Tiles}^3")
|
||||
logger.info(f"Limiter to scale: {name_scaled if name_scaled else 'None'}")
|
||||
if name_scaled:
|
||||
logger.info(f"Limiter rescaling for P3M1: {scaling_p3m1}")
|
||||
logger.info(f"Limiter rescaling for P3M2: {scaling_p3m2}")
|
||||
logger.info(f"Limiter rescaling for P3M3: {scaling_p3m3}")
|
||||
logger.info(f"New limiter value for P3M1: {mod_val_p3m1}")
|
||||
logger.info(f"New limiter value for P3M2: {mod_val_p3m2}")
|
||||
logger.info(f"New limiter value for P3M3: {mod_val_p3m3}")
|
||||
INDENT()
|
||||
|
||||
lpt = args.lpt
|
||||
|
@ -192,9 +192,9 @@ if __name__ == "__main__":
|
|||
"RedshiftLPT": RedshiftLPT,
|
||||
"RedshiftFCs": RedshiftFCs,
|
||||
"name_scaled": name_scaled,
|
||||
"scaling_p3m1": scaling_p3m1,
|
||||
"scaling_p3m2": scaling_p3m2,
|
||||
"scaling_p3m3": scaling_p3m3,
|
||||
"mod_val_p3m1": mod_val_p3m1,
|
||||
"mod_val_p3m2": mod_val_p3m2,
|
||||
"mod_val_p3m3": mod_val_p3m3,
|
||||
}
|
||||
with open(wd + "sim_params.txt", "w") as f:
|
||||
f.write(f"{sim_params}\n")
|
||||
|
@ -221,9 +221,9 @@ if __name__ == "__main__":
|
|||
lpt_params["ICsMode"] = 1
|
||||
lpt_params["InputWhiteNoise"] = input_white_noise_file
|
||||
|
||||
fac_dyn_custom = DEFAULT_FAC_DYN_CUSTOM
|
||||
fac_dyn_custom = DEFAULT_FAC_DYN_CUSTOM_COLA
|
||||
da_early = DEFAULT_DA_MAX_EARLY_CUSTOM
|
||||
fac_H_custom = DEFAULT_FAC_H_CUSTOM
|
||||
fac_H_custom = DEFAULT_FAC_H_CUSTOM_COLA
|
||||
fac_bend = DEFAULT_FAC_BEND
|
||||
sub_bend1 = DEFAULT_SUB_BEND1_COLA
|
||||
sub_bend2 = DEFAULT_SUB_BEND2_COLA
|
||||
|
@ -283,9 +283,9 @@ if __name__ == "__main__":
|
|||
p3m1_params["n_Tiles"] = n_Tiles
|
||||
p3m1_params["PrintOutputTimestepsLog"] = True
|
||||
p3m1_params["OutputTimestepsLog"] = simdir + "colap3m1_timestep_log.txt"
|
||||
p3m1_params["relax"] = scaling_p3m1
|
||||
p3m1_params["rescale"] = mod_val_p3m1
|
||||
if name_scaled:
|
||||
p3m1_params[name_scaled] /= scaling_p3m1
|
||||
p3m1_params[name_scaled] = mod_val_p3m1
|
||||
|
||||
p3m2_params = common_params_num.copy()
|
||||
p3m2_params["method"] = "p3m"
|
||||
|
@ -293,9 +293,9 @@ if __name__ == "__main__":
|
|||
p3m2_params["n_Tiles"] = n_Tiles
|
||||
p3m2_params["PrintOutputTimestepsLog"] = True
|
||||
p3m2_params["OutputTimestepsLog"] = simdir + "colap3m2_timestep_log.txt"
|
||||
p3m2_params["relax"] = scaling_p3m2
|
||||
p3m2_params["rescale"] = mod_val_p3m2
|
||||
if name_scaled:
|
||||
p3m2_params[name_scaled] /= scaling_p3m2
|
||||
p3m2_params[name_scaled] = mod_val_p3m2
|
||||
|
||||
p3m3_params = common_params_num.copy()
|
||||
p3m3_params["method"] = "p3m"
|
||||
|
@ -303,9 +303,9 @@ if __name__ == "__main__":
|
|||
p3m3_params["n_Tiles"] = n_Tiles
|
||||
p3m3_params["PrintOutputTimestepsLog"] = True
|
||||
p3m3_params["OutputTimestepsLog"] = simdir + "colap3m3_timestep_log.txt"
|
||||
p3m3_params["relax"] = scaling_p3m3
|
||||
p3m3_params["rescale"] = mod_val_p3m3
|
||||
if name_scaled:
|
||||
p3m3_params[name_scaled] /= scaling_p3m3
|
||||
p3m3_params[name_scaled] = mod_val_p3m3
|
||||
|
||||
all_sim_params = [
|
||||
("p3m1", p3m1_params),
|
||||
|
@ -323,9 +323,9 @@ if __name__ == "__main__":
|
|||
|
||||
for name, parameters in all_sim_params:
|
||||
logger.info(
|
||||
f"Generating parameters for {name.upper()} with relax = {parameters['relax']}..."
|
||||
f"Generating parameters for {name.upper()} with rescale = {parameters['rescale']}..."
|
||||
)
|
||||
file_ext = f"{name}_relax{str(parameters['relax']).replace('.', '_')}"
|
||||
file_ext = f"{name}_rescale{str(parameters['rescale']).replace('.', '_')}"
|
||||
generate_sim_params(parameters, ICs_path, wd, simdir, file_ext, force)
|
||||
logger.info(f"Generating parameters for {name.upper()} done.")
|
||||
|
||||
|
@ -398,7 +398,7 @@ if __name__ == "__main__":
|
|||
nsteps_dict = {}
|
||||
for name, parameters in all_sim_params:
|
||||
TimeStepDistribution = parameters["TimeStepDistribution"]
|
||||
file_ext = f"{name}_relax{str(parameters['relax']).replace('.', '_')}"
|
||||
file_ext = f"{name}_rescale{str(parameters['rescale']).replace('.', '_')}"
|
||||
method = parameters["method"]
|
||||
TSpath = wd + file_ext + f"_ts_{method}.h5" if file_ext else wd + f"ts_{method}.h5"
|
||||
if TimeStepDistribution in [0, 1, 2]:
|
||||
|
@ -462,17 +462,17 @@ if __name__ == "__main__":
|
|||
DELTA = read_field(simdir + "lpt_density.h5")
|
||||
Pk_LPT, _ = get_autocorrelation(DELTA, G, AliasingCorr)
|
||||
|
||||
DELTA = read_field(simdir + f"p3m1_relax{str(p3m1_params['relax']).replace('.', '_')}_final_density_p3m.h5")
|
||||
DELTA = read_field(simdir + f"p3m1_rescale{str(p3m1_params['rescale']).replace('.', '_')}_final_density_p3m.h5")
|
||||
if plot_fields:
|
||||
delta_p3m1 = DELTA.data[slice_ijk]
|
||||
Pk_P3M1, _ = get_autocorrelation(DELTA, G, AliasingCorr)
|
||||
|
||||
DELTA = read_field(simdir + f"p3m2_relax{str(p3m2_params['relax']).replace('.', '_')}_final_density_p3m.h5")
|
||||
DELTA = read_field(simdir + f"p3m2_rescale{str(p3m2_params['rescale']).replace('.', '_')}_final_density_p3m.h5")
|
||||
if plot_fields:
|
||||
delta_p3m2 = DELTA.data[slice_ijk]
|
||||
Pk_P3M2, _ = get_autocorrelation(DELTA, G, AliasingCorr)
|
||||
|
||||
DELTA = read_field(simdir + f"p3m3_relax{str(p3m3_params['relax']).replace('.', '_')}_final_density_p3m.h5")
|
||||
DELTA = read_field(simdir + f"p3m3_rescale{str(p3m3_params['rescale']).replace('.', '_')}_final_density_p3m.h5")
|
||||
if plot_fields:
|
||||
delta_p3m3 = DELTA.data[slice_ijk]
|
||||
Pk_P3M3, _ = get_autocorrelation(DELTA, G, AliasingCorr)
|
||||
|
@ -480,9 +480,9 @@ if __name__ == "__main__":
|
|||
|
||||
ref = "P3M1"
|
||||
|
||||
scaling_reference = scaling_p3m1
|
||||
mod_val_reference = mod_val_p3m1
|
||||
Pk_ref = Pk_P3M1
|
||||
label_ref = f"P3M, scaling={scaling_reference}, ns={nsteps_dict['p3m1']}"
|
||||
label_ref = f"P3M, mod_val={mod_val_reference}, ns={nsteps_dict['p3m1']}"
|
||||
|
||||
logger.info(f"Plotting power spectra...")
|
||||
INDENT()
|
||||
|
@ -516,7 +516,7 @@ if __name__ == "__main__":
|
|||
(field_name, Pk) for field_name, Pk in fields_to_plot if field_name != ref
|
||||
]
|
||||
for field_name, Pk in fields_to_plot:
|
||||
label = f"{field_name}, scaling={eval(f'scaling_{field_name.lower()}')}, ns={nsteps_dict[field_name.lower()]}"
|
||||
label = f"{field_name}, mod_val={eval(f'mod_val_{field_name.lower()}')}, ns={nsteps_dict[field_name.lower()]}"
|
||||
linestyle = "--"
|
||||
zorder = 2
|
||||
ax.plot(k, Pk / Pk_ref, label=label, linestyle=linestyle)
|
||||
|
@ -627,9 +627,9 @@ if __name__ == "__main__":
|
|||
}
|
||||
titles_dict = {
|
||||
"lpt": "LPT",
|
||||
"p3m1": f"P3M1 relax={scaling_p3m1}",
|
||||
"p3m2": f"P3M2 relax={scaling_p3m2}",
|
||||
"p3m3": f"P3M3 relax={scaling_p3m3}",
|
||||
"p3m1": f"P3M1 rescale={mod_val_p3m1}",
|
||||
"p3m2": f"P3M2 rescale={mod_val_p3m2}",
|
||||
"p3m3": f"P3M3 rescale={mod_val_p3m3}",
|
||||
"diff_p3m2_p3m1": r"$\delta_{\rm P3M2}-\delta_{\rm P3M1}$",
|
||||
"diff_p3m3_p3m1": r"$\delta_{\rm P3M3}-\delta_{\rm P3M1}$",
|
||||
"diff_p3m1_spm": r"$\delta_{\rm P3M1}-\delta_{\rm sPM}$",
|
||||
|
|
|
@ -138,8 +138,8 @@ DEFAULT_FAC_DYN_CUSTOM = 0.0154
|
|||
DEFAULT_FAC_DYN_CUSTOM_COLA = 0.03
|
||||
DEFAULT_DA_MAX_EARLY_CUSTOM = 0.0013
|
||||
DEFAULT_FAC_H_CUSTOM = 0.03
|
||||
DEFAULT_FAC_H_CUSTOM_COLA = 0.06
|
||||
DEFAULT_FAC_BEND = 0.04375
|
||||
DEFAULT_FAC_H_CUSTOM_COLA = 0.05
|
||||
DEFAULT_FAC_BEND = 0.3125
|
||||
DEFAULT_SUB_BEND1 = 0.012
|
||||
DEFAULT_SUB_BEND2 = 0.007
|
||||
DEFAULT_SUB_BEND1_COLA = 0.012
|
||||
|
|
|
@ -486,8 +486,8 @@ def run_simulation(name, params, wd, logdir):
|
|||
|
||||
if params.get("nsteps") is not None:
|
||||
file_ext = f"{name}_nsteps{params['nsteps']}"
|
||||
elif params.get("relax") is not None:
|
||||
file_ext = f"{name}_relax{str(params['relax']).replace('.', '_')}"
|
||||
elif params.get("rescale") is not None:
|
||||
file_ext = f"{name}_rescale{str(params['rescale']).replace('.', '_')}"
|
||||
elif params.get("file_ext") is not None:
|
||||
file_ext = params["file_ext"]
|
||||
else:
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#!/bin/bash
|
||||
#SBATCH --job-name=cola_2_1_05_L64_N64_Np64_v4
|
||||
#SBATCH --output=/data70/hoellinger/WIP3M/cola_2_1_05_L64_N64_Np64_v4/log.log
|
||||
#SBATCH --error=/data70/hoellinger/WIP3M/cola_2_1_05_L64_N64_Np64_v4/err.err
|
||||
#SBATCH --job-name=cola_Pf_L512_N512_Np256
|
||||
#SBATCH --output=/data70/hoellinger/WIP3M/cola_Pf_L512_N512_Np256/log.log
|
||||
#SBATCH --error=/data70/hoellinger/WIP3M/cola_Pf_L512_N512_Np256/err.err
|
||||
#SBATCH --nodes=1 # Number of nodes (value or min-max)
|
||||
#SBATCH --ntasks=64 # The number of tasks (i.e. cores) per node
|
||||
#SBATCH --ntasks=128 # The number of tasks (i.e. cores) per node
|
||||
#SBATCH --partition=comp,pscomp # Partition name
|
||||
#SBATCH --time=12:00:00
|
||||
#SBATCH --time=48:00:00
|
||||
|
||||
##SBATCH --exclusive
|
||||
##SBATCH --nodelist=i26 # Node name
|
||||
|
@ -15,43 +15,26 @@
|
|||
|
||||
conda activate p3m
|
||||
|
||||
export OMP_NUM_THREADS=16
|
||||
python $WIP3M_ROOT_PATH"src/wip3m/convergence_cola_p3m_only_expl.py" \
|
||||
--run_id cola_2_1_05_L64_N64_Np64_v4 \
|
||||
--L 64 \
|
||||
--N 64 \
|
||||
--Np 64 \
|
||||
--Npm 128 \
|
||||
--n_Tiles 16 \
|
||||
--z_i 19.0 \
|
||||
--z_f 0.0 \
|
||||
--plot_fields True \
|
||||
--scale_limiter "fac_p3m_fit" \
|
||||
--use_p3m_fit True \
|
||||
--scaling_p3m1 2.0 \
|
||||
--scaling_p3m2 1.0 \
|
||||
--scaling_p3m3 0.5
|
||||
|
||||
# export OMP_NUM_THREADS=32
|
||||
# export OMP_NUM_THREADS=64
|
||||
# python $WIP3M_ROOT_PATH"src/wip3m/convergence_cola_p3m_only_expl.py" \
|
||||
# --run_id cola_2_1_05_L128_N128_Np128 \
|
||||
# --L 128 \
|
||||
# --N 128 \
|
||||
# --Np 128 \
|
||||
# --Npm 256 \
|
||||
# --n_Tiles 32 \
|
||||
# --run_id cola_Pf_LNNp512 \
|
||||
# --L 512 \
|
||||
# --N 512 \
|
||||
# --Np 512 \
|
||||
# --Npm 1024 \
|
||||
# --n_Tiles 128 \
|
||||
# --z_i 19.0 \
|
||||
# --z_f 0.0 \
|
||||
# --plot_fields True \
|
||||
# --scale_limiter "fac_p3m_fit" \
|
||||
# --rescale_limiter "fac_p3m_fit" \
|
||||
# --use_p3m_fit True \
|
||||
# --scaling_p3m1 2.0 \
|
||||
# --scaling_p3m2 1.0 \
|
||||
# --scaling_p3m3 0.5
|
||||
# --mod_val_p3m1 0.3 \
|
||||
# --mod_val_p3m2 0.5 \
|
||||
# --mod_val_p3m3 1.1
|
||||
|
||||
# export OMP_NUM_THREADS=64
|
||||
# python $WIP3M_ROOT_PATH"src/wip3m/convergence_cola_p3m_only_expl.py" \
|
||||
# --run_id cola_432_L1024_N512_Np512 \
|
||||
# --run_id cola_Pf_L1024_N512_Np512 \
|
||||
# --L 1024 \
|
||||
# --N 512 \
|
||||
# --Np 512 \
|
||||
|
@ -60,27 +43,78 @@ python $WIP3M_ROOT_PATH"src/wip3m/convergence_cola_p3m_only_expl.py" \
|
|||
# --z_i 19.0 \
|
||||
# --z_f 0.0 \
|
||||
# --plot_fields True \
|
||||
# --scale_limiter "fac_p3m_fit" \
|
||||
# --rescale_limiter "fac_p3m_fit" \
|
||||
# --use_p3m_fit True \
|
||||
# --scaling_p3m1 4.0 \
|
||||
# --scaling_p3m2 3.0 \
|
||||
# --scaling_p3m3 2.0
|
||||
# --mod_val_p3m1 0.33 \
|
||||
# --mod_val_p3m2 0.4 \
|
||||
# --mod_val_p3m3 0.5
|
||||
|
||||
# export OMP_NUM_THREADS=64
|
||||
# python $WIP3M_ROOT_PATH"src/wip3m/convergence_cola_p3m_only_expl.py" \
|
||||
# --run_id cola_432_L128_N256_Np128 \
|
||||
# --L 128 \
|
||||
# --N 256 \
|
||||
# --Np 128 \
|
||||
# --Npm 256 \
|
||||
# --n_Tiles 32 \
|
||||
# --run_id cola_Pf_L1024_N1024_Np512 \
|
||||
# --L 1024 \
|
||||
# --N 1024 \
|
||||
# --Np 512 \
|
||||
# --Npm 1024 \
|
||||
# --n_Tiles 128 \
|
||||
# --z_i 19.0 \
|
||||
# --z_f 0.0 \
|
||||
# --plot_fields True \
|
||||
# --scale_limiter "fac_p3m_fit" \
|
||||
# --rescale_limiter "fac_p3m_fit" \
|
||||
# --use_p3m_fit True \
|
||||
# --scaling_p3m1 4.0 \
|
||||
# --scaling_p3m2 3.0 \
|
||||
# --scaling_p3m3 2.0
|
||||
# --mod_val_p3m1 0.33 \
|
||||
# --mod_val_p3m2 0.4 \
|
||||
# --mod_val_p3m3 0.5
|
||||
|
||||
# export OMP_NUM_THREADS=64
|
||||
# python $WIP3M_ROOT_PATH"src/wip3m/convergence_cola_p3m_only_expl.py" \
|
||||
# --run_id cola_Pf_LNNp256 \
|
||||
# --L 256 \
|
||||
# --N 256 \
|
||||
# --Np 256 \
|
||||
# --Npm 512 \
|
||||
# --n_Tiles 64 \
|
||||
# --z_i 19.0 \
|
||||
# --z_f 0.0 \
|
||||
# --plot_fields True \
|
||||
# --rescale_limiter "fac_p3m_fit" \
|
||||
# --use_p3m_fit True \
|
||||
# --mod_val_p3m1 0.3 \
|
||||
# --mod_val_p3m2 0.5 \
|
||||
# --mod_val_p3m3 1.1
|
||||
|
||||
# export OMP_NUM_THREADS=64
|
||||
# python $WIP3M_ROOT_PATH"src/wip3m/convergence_cola_p3m_only_expl.py" \
|
||||
# --run_id cola_Pf_L512_N256_Np256 \
|
||||
# --L 512 \
|
||||
# --N 256 \
|
||||
# --Np 256 \
|
||||
# --Npm 512 \
|
||||
# --n_Tiles 64 \
|
||||
# --z_i 19.0 \
|
||||
# --z_f 0.0 \
|
||||
# --plot_fields True \
|
||||
# --rescale_limiter "fac_p3m_fit" \
|
||||
# --use_p3m_fit True \
|
||||
# --mod_val_p3m1 0.33 \
|
||||
# --mod_val_p3m2 0.4 \
|
||||
# --mod_val_p3m3 0.5
|
||||
|
||||
export OMP_NUM_THREADS=64
|
||||
python $WIP3M_ROOT_PATH"src/wip3m/convergence_cola_p3m_only_expl.py" \
|
||||
--run_id cola_Pf_L512_N512_Np256 \
|
||||
--L 512 \
|
||||
--N 512 \
|
||||
--Np 256 \
|
||||
--Npm 512 \
|
||||
--n_Tiles 64 \
|
||||
--z_i 19.0 \
|
||||
--z_f 0.0 \
|
||||
--plot_fields True \
|
||||
--rescale_limiter "fac_p3m_fit" \
|
||||
--use_p3m_fit True \
|
||||
--mod_val_p3m1 0.33 \
|
||||
--mod_val_p3m2 0.4 \
|
||||
--mod_val_p3m3 0.5
|
||||
|
||||
exit 0
|
Loading…
Add table
Add a link
Reference in a new issue