Exemple #1
0
    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()
Exemple #2
0
    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()
Exemple #3
0
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))
Exemple #4
0
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')
Exemple #5
0
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')
Exemple #6
0
    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
Exemple #7
0
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)
Exemple #8
0
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:
Exemple #9
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))