mirror of
https://github.com/Findus23/halo_comparison.git
synced 2024-09-19 16:03:50 +02:00
look into spectra and HMF
This commit is contained in:
parent
cd84744a7a
commit
ffdc64db74
3 changed files with 139 additions and 6 deletions
|
@ -2,9 +2,8 @@ from math import log
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
from colossus.cosmology import cosmology
|
||||||
# from colossus.cosmology import cosmology
|
from colossus.lss import mass_function
|
||||||
# from colossus.lss import mass_function
|
|
||||||
from matplotlib import pyplot as plt
|
from matplotlib import pyplot as plt
|
||||||
from matplotlib.axes import Axes
|
from matplotlib.axes import Axes
|
||||||
from matplotlib.figure import Figure
|
from matplotlib.figure import Figure
|
||||||
|
@ -33,14 +32,30 @@ def monofonic_tests():
|
||||||
else:
|
else:
|
||||||
resolutions.append(512)
|
resolutions.append(512)
|
||||||
|
|
||||||
for i, waveform in enumerate(["DB2", "shannon"]):
|
plank_cosmo = cosmology.cosmologies["planck18"]
|
||||||
|
our_cosmo = {
|
||||||
|
# "sigma8": 0.807,
|
||||||
|
"H0": 0.67742 * 100,
|
||||||
|
"Om0": 0.3099,
|
||||||
|
"Ob0": 0.048891054,
|
||||||
|
"ns": 0.96822,
|
||||||
|
}
|
||||||
|
|
||||||
|
cosmology.addCosmology("ourCosmo", params={**plank_cosmo, **our_cosmo})
|
||||||
|
cosmology.setCosmology("ourCosmo")
|
||||||
|
print(cosmology.getCurrent())
|
||||||
|
|
||||||
|
for i, waveform in enumerate(["DB2", "shannon", "shannon_rehalo"]):
|
||||||
for j, resolution in enumerate(resolutions):
|
for j, resolution in enumerate(resolutions):
|
||||||
|
if waveform == "shannon_rehalo" and resolution != 128:
|
||||||
|
continue
|
||||||
print(waveform, resolution)
|
print(waveform, resolution)
|
||||||
dir = base_dir / f"{waveform}_{resolution}_100"
|
dir = base_dir / f"{waveform}_{resolution}_100"
|
||||||
halos = read_velo_halos(dir)
|
halos = read_velo_halos(dir)
|
||||||
|
|
||||||
# halos.to_csv("weird_halos.csv")
|
# halos.to_csv("weird_halos.csv")
|
||||||
halo_masses: np.ndarray = halos["Mvir"].to_numpy()
|
halo_masses: np.ndarray = halos["Mvir"].to_numpy() * 1e10 * 0.67742
|
||||||
|
halo_masses = halo_masses[halo_masses > 0]
|
||||||
|
|
||||||
(
|
(
|
||||||
Ns,
|
Ns,
|
||||||
|
@ -58,7 +73,7 @@ def monofonic_tests():
|
||||||
name = f"{waveform} {resolution}"
|
name = f"{waveform} {resolution}"
|
||||||
ax.step(
|
ax.step(
|
||||||
left_edges,
|
left_edges,
|
||||||
number_densities,
|
number_densities / (0.67742 ** 3),
|
||||||
where="post",
|
where="post",
|
||||||
color=f"C{i}",
|
color=f"C{i}",
|
||||||
linestyle=linestyles[j],
|
linestyle=linestyles[j],
|
||||||
|
@ -76,6 +91,13 @@ def monofonic_tests():
|
||||||
|
|
||||||
# break
|
# break
|
||||||
# break
|
# break
|
||||||
|
|
||||||
|
mfunc = mass_function.massFunction(
|
||||||
|
left_edges, 1, mdef="vir", model="tinker08", q_out="dndlnM"
|
||||||
|
)
|
||||||
|
|
||||||
|
ax.plot(left_edges, mfunc, label="tinker08", color="C4")
|
||||||
|
|
||||||
plt.legend()
|
plt.legend()
|
||||||
fig.savefig(Path(f"~/tmp/halo_mass_function.pdf").expanduser())
|
fig.savefig(Path(f"~/tmp/halo_mass_function.pdf").expanduser())
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
28
hmf_test.py
Normal file
28
hmf_test.py
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
from velociraptor import load, tools
|
||||||
|
|
||||||
|
from paths import base_dir
|
||||||
|
from read_vr_files import read_velo_halos
|
||||||
|
from unyt import Mpc
|
||||||
|
import unyt
|
||||||
|
|
||||||
|
for i, waveform in enumerate(["DB2", "DB4", "DB8", "shannon"]):
|
||||||
|
for j, resolution in enumerate([128, 256, 512]):
|
||||||
|
print(waveform, resolution)
|
||||||
|
dir = base_dir / f"{waveform}_{resolution}_100"
|
||||||
|
data = load(str(dir)+"/vroutput.properties.0")
|
||||||
|
print(data)
|
||||||
|
masses_200crit = data.masses.mass_200crit
|
||||||
|
masses_200crit.convert_to_units("msun")
|
||||||
|
lowest_halo_mass = 1e9 * unyt.msun
|
||||||
|
highest_halo_mass = 8e15 * unyt.msun
|
||||||
|
bin_centers, mass_function, error = tools.create_mass_function(
|
||||||
|
masses_200crit, lowest_halo_mass, highest_halo_mass, (100*Mpc)**3
|
||||||
|
)
|
||||||
|
plt.loglog(bin_centers,mass_function)
|
||||||
|
# halos = read_velo_halos(dir)
|
||||||
|
#
|
||||||
|
# print(halos["Rvir"].sort_values(ascending=False)[:4].to_numpy())
|
||||||
|
|
||||||
|
|
||||||
|
plt.show()
|
83
spectra_test.py
Normal file
83
spectra_test.py
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
import numpy as np
|
||||||
|
import pandas as pd
|
||||||
|
import scipy.special as sf
|
||||||
|
from matplotlib import pyplot as plt
|
||||||
|
from matplotlib.axes import Axes
|
||||||
|
from matplotlib.figure import Figure
|
||||||
|
|
||||||
|
|
||||||
|
def read_monofonic_file(file: str):
|
||||||
|
return pd.read_csv(
|
||||||
|
file,
|
||||||
|
sep=" ",
|
||||||
|
skipinitialspace=True,
|
||||||
|
header=None,
|
||||||
|
names=[
|
||||||
|
"k", "P_dtot", "P_dcdm", "P_dbar", "P_tcdm", "P_tbar", "..", "...", "....", "....."
|
||||||
|
],
|
||||||
|
skiprows=1,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def read_spectra_file(file: str):
|
||||||
|
return pd.read_csv(
|
||||||
|
# f"/home/lukas/cosmos_data/monofonic_tests/spectra/DB8_100/DB8_100_ics_256_256_cross_spectrum.txt",
|
||||||
|
file,
|
||||||
|
sep=" ",
|
||||||
|
skipinitialspace=True,
|
||||||
|
header=None,
|
||||||
|
names=[
|
||||||
|
"k",
|
||||||
|
"Pcross",
|
||||||
|
"P1",
|
||||||
|
"err. P1",
|
||||||
|
"P2",
|
||||||
|
"err. P2",
|
||||||
|
"P2-1",
|
||||||
|
"err. P2-1",
|
||||||
|
"modes in bin",
|
||||||
|
],
|
||||||
|
skiprows=1,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
monofonic_spectra = read_monofonic_file(
|
||||||
|
f"/home/lukas/cosmoca/cosmoca-reproducibility/monofonic_tests/input_powerspec.txt")
|
||||||
|
print(monofonic_spectra)
|
||||||
|
|
||||||
|
|
||||||
|
def Dplus(lambda0, a):
|
||||||
|
return a * np.sqrt(1.0 + lambda0 * a ** 3) * \
|
||||||
|
sf.hyp2f1(3.0 / 2.0, 5.0 / 6.0, 11.0 / 6.0, -lambda0 * a ** 3)
|
||||||
|
|
||||||
|
|
||||||
|
OmegaLambda = 0.6901
|
||||||
|
OmegaM = 0.3099
|
||||||
|
lambda_0 = OmegaLambda / OmegaM
|
||||||
|
a_ini = 0.02
|
||||||
|
factor = Dplus(lambda_0, a_ini) ** 2 / Dplus(lambda_0, 1) ** 2
|
||||||
|
|
||||||
|
sim_spectra = read_spectra_file(
|
||||||
|
"/home/lukas/cosmoca/cosmoca-reproducibility/monofonic_tests/out.txt_cross_spectrum.txt")
|
||||||
|
sim_spectra_ics_new = read_spectra_file(
|
||||||
|
"/home/lukas/cosmoca/cosmoca-reproducibility/monofonic_tests/DB8_spectra.txt_cross_spectrum.txt")
|
||||||
|
sim_spectra_ics_old = read_spectra_file(
|
||||||
|
"/home/lukas/cosmos_data/monofonic_tests/spectra/DB8_100/DB8_100_ics_256_256_cross_spectrum.txt", )
|
||||||
|
sim_spectra = read_spectra_file(
|
||||||
|
"/home/lukas/cosmos_data/monofonic_tests/spectra/DB8_100/DB8_100_a4_256_256_cross_spectrum.txt", )
|
||||||
|
sim_spectra_new = read_spectra_file(
|
||||||
|
"/home/lukas/cosmoca/cosmoca-reproducibility/monofonic_tests/DB8_spectra_end_cross_spectrum.txt")
|
||||||
|
|
||||||
|
fig: Figure = plt.figure()
|
||||||
|
ax: Axes = fig.gca(
|
||||||
|
|
||||||
|
)
|
||||||
|
ax.loglog(sim_spectra.k, sim_spectra.P1*factor, label="sim")
|
||||||
|
ax.loglog(sim_spectra_new.k, sim_spectra_new.P1*factor, label="sim new")
|
||||||
|
ax.loglog(sim_spectra_ics_old.k, sim_spectra_ics_old.P1, label="ics old")
|
||||||
|
ax.loglog(sim_spectra_ics_new.k, sim_spectra_ics_new.P1, label="ics new")
|
||||||
|
ax.loglog(monofonic_spectra.k, monofonic_spectra.P_dtot, linestyle="dotted", label="ref")
|
||||||
|
# ax.loglog(monofonic_spectra.k, monofonic_spectra.P_dcdm, label="P_dcdm")
|
||||||
|
# ax.loglog(monofonic_spectra.k, monofonic_spectra.P_dbar, label="P_dbar")
|
||||||
|
plt.legend()
|
||||||
|
plt.show()
|
Loading…
Reference in a new issue