コード例 #1
0
	def __init__(self, AxionMass_Vals, AxionFrac_Vals, fiducial_ax_frac, omegaMh2_Vals, fiducial_omegaMh2, omegaBh2_Vals, fiducial_omegaBh2, h_Vals, fiducial_h, ns_Vals, fiducial_ns, logAs_1010_Vals, fiducial_logAs_1010):

		AxionFrac_Vals=np.clip(AxionFrac_Vals,1.0e-6/(fiducial_omegaMh2-fiducial_omegaBh2), 1-(1.0e-6/(fiducial_omegaMh2-fiducial_omegaBh2)))#axion CAMB does not like zero cdm or axion densities

		self.__params=[]
		self.__values=[]
		self.__fiducial_values=[]

		tmp_params=[]
		tmp_vals=[]
		tmp_fiducial=[]

		for axion_mass in AxionMass_Vals:

			AxionFrac_phys=[]
			for axfrac in AxionFrac_Vals:
				phys=Physics.create_parameter_set(axion_mass, axfrac, fiducial_omegaMh2, fiducial_omegaBh2, fiducial_h, fiducial_ns, fiducial_logAs_1010)
				AxionFrac_phys.append(phys)

			tmp_params.append(AxionFrac_phys)
			tmp_vals.append(AxionFrac_Vals)
			tmp_fiducial.append(fiducial_ax_frac)

		self.__params.append(tmp_params)
		self.__values.append(tmp_vals)
		self.__fiducial_values.append(tmp_fiducial)

		omegaM_phys=[]
		for oMh2 in omegaMh2_Vals:
			phys=Physics.create_parameter_set(1.0e-24, 0.0, oMh2, fiducial_omegaBh2, fiducial_h, fiducial_ns, fiducial_logAs_1010)
			omegaM_phys.append(phys)

		omegaB_phys=[]
		for oBh2 in omegaBh2_Vals:
			phys=Physics.create_parameter_set(1.0e-24, 0.0, fiducial_omegaMh2, oBh2, fiducial_h, fiducial_ns, fiducial_logAs_1010)
			omegaB_phys.append(phys)

		h_phys=[]
		for h in h_Vals:
			phys=Physics.create_parameter_set(1.0e-24, 0.0, fiducial_omegaMh2, fiducial_omegaBh2, h, fiducial_ns, fiducial_logAs_1010)
			h_phys.append(phys)

		ns_phys=[]
		for n in ns_Vals:
			phys = Physics.create_parameter_set(1.0e-24, 0.0, fiducial_omegaMh2, fiducial_omegaBh2, fiducial_h, n, fiducial_logAs_1010)
			ns_phys.append(phys)

		As_phys = []
		for logAs_1010 in logAs_1010_Vals:
			phys = Physics.create_parameter_set(1.0e-24, 0.0, fiducial_omegaMh2, fiducial_omegaBh2, fiducial_h, fiducial_ns, logAs_1010)
			As_phys.append(phys)

		if len(omegaM_phys)>0:
			self.__params.append(omegaM_phys)
			self.__values.append(omegaMh2_Vals)
			self.__fiducial_values.append(fiducial_omegaMh2)
		if len(omegaB_phys)>0:
			self.__params.append(omegaB_phys)
			self.__values.append(omegaBh2_Vals)
			self.__fiducial_values.append(fiducial_omegaBh2)
		if len(h_phys)>0:
			self.__params.append(h_phys)
			self.__values.append(h_Vals)
			self.__fiducial_values.append(fiducial_h)
		if len(ns_phys)>0:
			self.__params.append(ns_phys)
			self.__values.append(ns_Vals)
			self.__fiducial_values.append(fiducial_ns)
		if len(As_phys)>0:
			self.__params.append(As_phys)
			self.__values.append(logAs_1010_Vals)
			self.__fiducial_values.append(fiducial_logAs_1010)
コード例 #2
0
        time.time() - start_cov))

    print("Generating parameters and accessing database")
    start_gen = time.time()
    run_database_ids = []
    base_run_ids = []

    number_of_runs = 0
    for mass in axion_masses:
        base_run_id = None
        run_database_ids_tmp = []
        for axion_frac in axion_frac_vals:
            phys = Physics.create_parameter_set(mass,
                                                axion_frac,
                                                OmegaMh2,
                                                OmegaBh2,
                                                phys.h,
                                                phys.n,
                                                phys.logAs_1010,
                                                print=False)

            run_entry = run_database.add_run(phys,
                                             z_vals,
                                             minClusterMass[stage],
                                             high_res=True,
                                             high_res_multiplier=5,
                                             jenkins_mass_function=False,
                                             window_function=window)

            if phys.f_axion == 0.0:
                base_run_id = run_entry.name
            else:
コード例 #3
0
P_CAMB = np.loadtxt(filename)
p_interp = interpolate(P_CAMB[:, 0] * phys.h, P_CAMB[:, 1] / phys.h ** 3, phys.P_cdm, phys.P_cdm)

try:
    cov = Cov.load_covariance("covariance_matrix_{}_{}.dat".format(['top-hat', 'gaussian', 'sharp-k', 'no-filter'][window], ["stageII", "stageIII", "stageIV"][stage]))
except (IOError, OSError) as e:
    print("Covariance matrix not found. Recomputing...")
    cov = Cov(p_interp, None, zmin, zmax, Nz, r_vals, delta_r, overlap_area[stage] / 129600 * np.pi, sigma_v_vals[stage], kmin=min(P_CAMB[:, 0] * phys.h), kmax=max(P_CAMB[:, 0] * phys.h), mMin=minClusterMass[stage], mMax=1e16, physics=phys, window_function=window)
    cov.save_covariance("covariance_matrix_{}_{}.dat".format(['top-hat', 'gaussian', 'sharp-k', 'no-filter'][window], ["stageII", "stageIII", "stageIV"][stage]))

print("Total time take to get covariance matrices: {:.2}s".format(time.time()-start_cov))

params=[]
for m in axion_masses:
    for f in axion_frac_vals:
        phys = Physics.create_parameter_set(axion_mass=m, axion_frac=f)
        params.append(phys)

#with MyProcessPool(12) as p:
#    p.map(lambda i: run_axionCAMB("CAMB_run4plots_{}".format(i), params[i]), range(0, len(params)))

with MyProcessPool(12) as p:
    outputs = p.map(lambda i:  run_mpv("MPV_run4plots_log_{}".format(i), "MPV_run4plots_{}".format(i), "CAMB_run4plots_{}".format(i), params[i], window, minClusterMass[stage], z_vals), range(0, len(params)))

final=[]
for i in range(len(axion_masses)):
    final_tmp=[]
    for j in range(len(axion_frac_vals)):
        final_tmp.append(outputs[i*len(axion_frac_vals)+j])
    final.append(final_tmp)