def particles(): omega_m = 0.308 nc = 64 nc_pm = nc boxsize = 64 a_init = 0.1 a_final = 1.0 seed = 1 nstep = 9 fs.cosmology.init(omega_m) ps = fs.PowerSpectrum('../data/planck_matterpower.dat') particles = fs.lpt.init(nc, boxsize, a_init, ps, seed) fs.pm.init(nc_pm, nc_pm / nc, boxsize) for i in range(nstep): a_vel = a_init + (a_final - a_init) / nstep * (i + 0.5) fs.pm.force(particles) fs.cola.kick(particles, a_vel) a_pos = a_init + (a_final - a_init) / nstep * (i + 1.0) fs.cola.drift(particles, a_pos) return particles
def setup_particles(): # parameters omega_m = 0.308 nc = 64 pm_nc_factor = 1 boxsize = 64 a = 1.0 seed = 1 # initial setup fs.msg.set_loglevel(3) fs.cosmology.init(omega_m) ps = fs.PowerSpectrum('../data/planck_matterpower.dat') # Set 2LPT displacements at scale factor a particles = fs.lpt.init(nc, boxsize, a, ps, seed) fs.pm.init(nc * pm_nc_factor, pm_nc_factor, boxsize) return particles
import h5py import fs omega_m = 0.308 nc = 4 pm_nc_factor = 1 boxsize = 4 a = 0.0 seed = 1 fs.cosmology.init(omega_m) ps = fs.PowerSpectrum('../data/planck_matterpower.dat') # Set 2LPT displacements at scale factor a particles = fs.lpt.init(nc, boxsize, a, ps, seed) fs.pm.init(nc * pm_nc_factor, pm_nc_factor, boxsize) filename = 'particles_%d.h5' % fs.comm.n_nodes() particles.save_hdf5(filename, 'ix') np = nc * nc * nc def assert_almost_equal(x, y): eps = 1.0e-15 assert (abs(x - y) < eps) if fs.comm.this_node() == 0: