def __init__(self, bs=40., nc=8, seed=100, B=1, dtype=np.float32): self['dtype'] = dtype self['boxsize'] = bs self['shift'] = 0.0 self['nc'] = int(nc) self['ndim'] = 3 self['seed'] = seed self['pm_nc_factor'] = B self['resampler'] = 'cic' self['cosmology'] = Planck15 self['powerspectrum'] = EHPower(Planck15, 0) self['unitary'] = False self['stages'] = numpy.linspace(0.1, 1.0, 5, endpoint=True) self['aout'] = [1.0] self['kvec'] = fftk(shape=(nc, nc, nc), boxsize=bs, symmetric=False, dtype=dtype) self['grid'] = bs / nc * np.indices( (nc, nc, nc)).reshape(3, -1).T.astype(dtype) local = {} # these names will be usable in the config file local['EHPower'] = EHPower local['Cosmology'] = Cosmology local['Planck15'] = Planck15 local['linspace'] = numpy.linspace # local['autostages'] = autostages import nbodykit.lab as nlab local['nlab'] = nlab self.finalize()
def __init__(self): self['boxsize'] = 40 self['shift'] = 0.0 self['nc'] = 8 self['ndim'] = 3 self['seed'] = 100 self['pm_nc_factor'] = 1 self['resampler'] = 'cic' self['cosmology'] = Planck15 self['powerspectrum'] = EHPower(Planck15, 0) self['unitary'] = False self['stages'] = numpy.linspace(0.1, 1.0, 5, endpoint=True) self['aout'] = [1.0] local = {} # these names will be usable in the config file local['EHPower'] = EHPower local['Cosmology'] = Cosmology local['Planck15'] = Planck15 local['linspace'] = numpy.linspace # local['autostages'] = autostages import nbodykit.lab as nlab local['nlab'] = nlab self.finalize()
def test_deprecated_ehpower(): c = Cosmology() with pytest.warns(FutureWarning): Plin1 = EHPower(c, redshift=0) Plin2 = LinearPower(c, 0., transfer='EisensteinHu') assert_allclose(Plin1(0.1), Plin2(0.1)) with pytest.warns(FutureWarning): Plin1 = NoWiggleEHPower(c, redshift=0) Plin2 = LinearPower(c, 0., transfer='NoWiggleEisensteinHu') assert_allclose(Plin1(0.1), Plin2(0.1))
def test_ncdm(comm): pm = ParticleMesh(BoxSize=512., Nmesh=[8, 8, 8], comm=comm) Plin = EHPower(Planck15, redshift=0) solver = Solver(pm, Planck15, B=1) Q = pm.generate_uniform_particle_grid() wn = solver.whitenoise(1234) dlin = solver.linear(wn, lambda k: Plin(k)) state = solver.lpt(dlin, Q, a=1.0, order=2) dnonlin = solver.nbody(state, leapfrog([0.1, 1.0])) dnonlin.save('nonlin')
def test_solver(): Plin = EHPower(Planck15, redshift=0) solver = Solver(pm, Planck15, B=2) Q = pm.generate_uniform_particle_grid() wn = solver.whitenoise(1234) dlin = solver.linear(wn, lambda k: Plin(k)) state = solver.lpt(dlin, Q, a=0.3, order=2) dnonlin = solver.nbody(state, leapfrog([0.3, 0.35])) dnonlin.save('nonlin')
def __init__(self, path): self.prefix = '%s' % path filename = self.makepath('config.py') self['boxsize'] = 1380.0 self['shift'] = 0.0 self['nc'] = 64 self['ndim'] = 3 self['seed'] = 1985 self['pm_nc_factor'] = 2 self['resampler'] = 'tsc' self['cosmology'] = Planck15 self['powerspectrum'] = EHPower(Planck15, 0) self['unitary'] = False self['stages'] = numpy.linspace(0.1, 1.0, 5, endpoint=True) self['aout'] = [1.0] local = {} # these names will be usable in the config file local['EHPower'] = EHPower local['Cosmology'] = Cosmology local['Planck15'] = Planck15 local['linspace'] = numpy.linspace local['autostages'] = autostages import nbodykit.lab as nlab local['nlab'] = nlab names = set(self.__dict__.keys()) exec(open(filename).read(), local, self) unknown = set(self.__dict__.keys()) - names assert len(unknown) == 0 self.finalize() global _config _config = self
from mpi4py import MPI import numpy from argparse import ArgumentParser from nbodykit.cosmology import Planck15 from nbodykit.cosmology import EHPower from nbodykit.cosmology.perturbation import PerturbationGrowth from scipy.integrate import quad PowerSpectrum = EHPower(Planck15, redshift=0.0) pt = PerturbationGrowth(Planck15.clone(Tcmb0=0)) class FastPM: def K(ai, af, ar): return 1 / (ar**2 * pt.E(ar)) * (pt.Gf(af) - pt.Gf(ai)) / pt.gf(ar) def D(ai, af, ar): return 1 / (ar**3 * pt.E(ar)) * (pt.Gp(af) - pt.Gp(ai)) / pt.gp(ar) class FastPM1: def K(ai, af, ar): def func(a): return 1.0 / (a * a * pt.E(a)) return quad(func, ai, af)[0] def D(ai, af, ar): return 1 / (ar**3 * pt.E(ar)) * (pt.Gp(af) - pt.Gp(ai)) / pt.gp(ar)
from pmesh.pm import ParticleMesh import numpy pm = ParticleMesh(BoxSize=512, Nmesh=[256, 256, 256], dtype='f8', resampler='tsc') Q = pm.generate_uniform_particle_grid() stages = numpy.linspace(0.1, 1.0, 20, endpoint=True) solver = Solver(pm, Planck15, B=2) solver_ncdm = SolverNCDM(pm, Planck15, B=2) wn = solver.whitenoise(400) dlin = solver.linear(wn, EHPower(Planck15, 0)) lpt = solver.lpt(dlin, Q, stages[0]) #lpt.S = numpy.float32(lpt.S) def monitor(action, ai, ac, af, state, event): if pm.comm.rank == 0: print(state.a['S'], state.a['P'], state.a['F'], state.S[0], state.P[0], action, ai, ac, af) state1 = solver.nbody(lpt.copy(), leapfrog(stages), monitor=monitor) state2 = solver_ncdm.nbody(lpt.copy(), leapfrog(stages), monitor=monitor) if pm.comm.rank == 0:
from __future__ import print_function from numpy.testing import assert_raises, assert_array_equal, assert_allclose from numpy.testing.decorators import skipif import numpy from pmesh.abopt import ParticleMesh, RealField, ComplexField, check_grad from nbodykit.cosmology import Planck15, EHPower cosmo = Planck15.clone(Tcmb0=0) pm = ParticleMesh(BoxSize=1.0, Nmesh=(4, 4, 4), dtype='f8') pk = EHPower(Planck15, redshift=0) mask2d = pm.resize([4, 4, 1]).create(mode='real') mask2d[...] = 1.0 from cosmo4d import map2d from cosmo4d.nbody import NBodyModel from cosmo4d.options import UseComplexSpaceOptimizer, UseRealSpaceOptimizer def test_map2d(): dynamic_model = NBodyModel(cosmo, pm, 1, [1.0]) mock_model = map2d.MockModel(dynamic_model) noise_model = map2d.NoiseModel(pm, mask2d, 1.0, 1234) initial = pm.generate_whitenoise(1234, mode='real') obs = mock_model.make_observable(initial) assert_array_equal(obs.map2d.Nmesh, (4, 4, 1))