def read_density(self, dens_file, contrast=False): if self.dens_file_reader is not None: dens = self.dens_file_reader(dens_file) else: t2c.set_sim_constants(int(self.Lbox*0.7)) dens = t2c.DensityFile(dens_file).raw_density#cgs_density*u.g/u.cm**3 self.nGrid = dens.shape[0] if contrast: dens = dens/dens.mean() - 1. return dens
''' Created on 16 Apr 2020 @author: Sambit Giri Setup script ''' import numpy as np import matplotlib.pyplot as plt from sim21cm import extreme_model import tools21cm as t2c t2c.set_sim_constants(500) # Instantaneous simulation ### In this mode, we take one density field and ionize it based on a ### given average ionization fraction dens_file = '/disk/dawn-1/garrelt/Reionization/C2Ray_WMAP7/500Mpc/coarser_densities/nc300/8.064n_all.dat' dens = t2c.DensityFile(dens_file).raw_density xi = [0.3, 0.7] simoi = extreme_model.OutsideIn() xhii0 = simoi.run_instant(dens, xi[0], volume_averaged=True, mass_averaged=True, write=False) xhii1 = simoi.run_instant(dens, xi[1], volume_averaged=True, mass_averaged=True,
import numpy as np import matplotlib.pyplot as plt import tools21cm as t2c ### Setting the simulation environment t2c.set_sim_constants(244) ### Reading files xfrac_filename = '/disk/dawn-1/garrelt/Reionization/C2Ray_WMAP7/244Mpc/244Mpc_f2_0_250/results/xfrac3d_6.418.bin' dens_filename = '/disk/dawn-1/sgiri/simulations/244Mpc/coarser_densities/nc250/6.418n_all.dat' xfrac = t2c.read_c2ray_files(xfrac_filename, file_type='xfrac') # Ionization fraction file neut = 1 - xfrac # Neutral fraction file dens = t2c.read_c2ray_files(dens_filename, file_type='dens') # Density file ### Redshift from filename.....It can be manually given also z = float(xfrac_filename.split('_')[-1].split('.b')[0]) ### Making 21-cm coeval cube dt = t2c.calc_dt(xfrac, dens, z) ### Smoothing neutral field to SKA resolution smt_dt = t2c.smooth_coeval(dt, z) ### Generating the binary field from 21-cm signal using KMeans bin_xf_sim = t2c.threshold_kmeans_3cluster(dt, upper_lim=True, n_jobs=5) bin_nf_sim = 1. - bin_xf_sim # The neutral binary field at Sim-Res bin_xf_smt = t2c.threshold_kmeans_3cluster(smt_dt, upper_lim=True, n_jobs=5)
path_xi = '/research/prace/64Mpc_f2_8.2pS_256/results/' path_dens = '/research/prace/sph_smooth_cubepm_130708_8_2048_64Mpc_ext2/nc256/' out_res = 64 out_dir = './2DlogPk-%dx%d_%s_%dMpc' %(out_res, out_res, datetime.now().strftime('%d%m%y'), sim) os.makedirs(out_dir) # interpolate redshift list redshift_xi = t2c.get_xfrac_redshifts(path_xi) redshift_dens = t2c.get_dens_redshifts(path_dens) redshift = SameValuesInArray(redshift_xi, redshift_dens) print('tot redshift:', redshift.size) #### Code below this is important t2c.set_sim_constants(sim) min_arr = [] max_arr = [] for i in tqdm(range(len(redshift))): z = redshift[i] xf = t2c.XfracFile('%sxfrac3d_%.3f.bin' %(path_xi, z)).xi dn = t2c.DensityFile('%s%.3fn_all.dat' %(path_dens, z)).cgs_density dt = t2c.calc_dt(xf, dn, z) ps_dt = t2c.power_spectrum_nd(dt) if(smt): ps_dt = ndimage.gaussian_filter(ps_dt, 5, mode='wrap') for ax in ['x', 'y', 'z']: if(ax=='x'): rs_dt = np.log10(ps_dt[:, int(mesh/2):int(mesh/2)+out_res, int(mesh/2):int(mesh/2)+out_res])