Switch to BORG velocity model

This commit is contained in:
Deaglan Bartlett 2024-04-24 11:58:34 +02:00
parent 8728be9b3a
commit f483a62dda
12 changed files with 147 additions and 98 deletions

4
.gitignore vendored
View file

@ -158,3 +158,7 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# Borg
*allocation_stats_0.txt
*timing_stats_0.txt

View file

@ -19,7 +19,7 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
HADES likelihood for distance-tracers
"""
def __init__(self, fwd: borg.forward.BaseForwardModel, param_model: forwards.NullForward, ini_file: str) -> None:
def __init__(self, fwd: borg.forward.BaseForwardModel, param_model: forwards.NullForward, fwd_vel: borg.forward.BaseForwardModel, ini_file: str) -> None:
"""
Initialises the VelocityBORGLikelihood class
@ -27,6 +27,7 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
- fwd (borg.forward.BaseForwardModel): The forward model to be used in the likelihood.
- param_model (forwards.NullForward): An empty forward model for storing model parameters.
- ini_file (str): The name of the ini file containing the model and borg parameters.
ADD FW_VEL HERE
"""
self.ini_file = ini_file
@ -80,6 +81,7 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
# Define the forward models
self.fwd = fwd
self.fwd_param = param_model
self.fwd_vel = fwd_vel
# Initialise model parameters
model_params = {
@ -93,12 +95,13 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
# Initialise cosmological parameters
cpar = utils.get_cosmopar(self.ini_file)
self.fwd.setCosmoParams(cpar)
# self.fwd_vel.setCosmoParams(cpar)
self.fwd_param.setCosmoParams(cpar)
self.updateCosmology(cpar)
myprint(f"Original cosmological parameters: {self.fwd.getCosmoParams()}")
# Initialise derivative
self.grad_like = jax.grad(self.dens2like)
self.grad_like = jax.grad(self.dens2like, argnums=(0,1))
def initializeLikelihood(self, state: borg.likelihood.MarkovState) -> None:
@ -135,6 +138,7 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
cpar = state['cosmology']
cpar.omega_q = 1. - cpar.omega_m - cpar.omega_k
self.fwd.setCosmoParams(cpar)
# self.fwd_vel.setCosmoParams(cpar)
self.fwd_param.setCosmoParams(cpar)
@ -155,6 +159,7 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
cpar.omega_q = 1. - cpar.omega_m - cpar.omega_k
self.fwd.setCosmoParams(cpar)
# self.fwd_vel.setCosmoParams(cpar)
self.fwd_param.setCosmoParams(cpar)
# Compute growth rate
@ -218,9 +223,8 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
elif self.run_type == 'velmass':
raise NotImplementedError
elif self.run_type == 'mock':
np.random.seed(self.mock_seed)
self.coord_true, self.coord_meas, self.sig_mu, self.vr_true, self.cz_obs = \
mock_maker.borg_mock(s_hat, state, self.fwd, self.ini_file)
mock_maker.borg_mock(s_hat, state, self.fwd, self.fwd_vel, self.ini_file, seed=self.mock_seed)
else:
raise NotImplementedError
@ -228,7 +232,7 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
self.generateMBData()
def dens2like(self, output_density: np.ndarray):
def dens2like(self, output_density: np.ndarray, output_velocity: np.ndarray):
"""
Given stored distance tracer data, computes the negative log-likelihood of the data
for this final density field.
@ -246,9 +250,10 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
bulk_flow = jnp.array([self.fwd_param.getModelParam('nullforward', 'bulk_flow_x'),
self.fwd_param.getModelParam('nullforward', 'bulk_flow_y'),
self.fwd_param.getModelParam('nullforward', 'bulk_flow_z')])
v = forwards.dens2vel_linear(output_density, self.f,
self.fwd.getOutputBoxModel().L[0], self.smooth_R)
v = v + self.bulk_flow.reshape((3, 1, 1, 1))
# v = forwards.dens2vel_linear(output_density, self.f,
# self.fwd.getOutputBoxModel().L[0], self.smooth_R)
# v = v + self.bulk_flow.reshape((3, 1, 1, 1))
v = output_velocity + self.bulk_flow.reshape((3, 1, 1, 1))
omega_m = self.fwd.getCosmoParams().omega_m
@ -298,10 +303,14 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
output_density = np.zeros((N,N,N))
self.fwd.forwardModel_v2(s_hat)
self.fwd.getDensityFinal(output_density)
# Get velocity field
output_velocity = self.fwd_vel.getVelocityField()
self.delta = output_density
self.vel = output_velocity
L = self.dens2like(output_density)
L = self.dens2like(output_density, output_velocity)
myprint(f"var(s_hat): {np.var(s_hat)}, Call to logLike: {L}")
return L
@ -326,14 +335,22 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
output_density = np.zeros((N,N,N))
self.fwd.forwardModel_v2(s_hat)
self.fwd.getDensityFinal(output_density)
# Get velocity field
output_velocity = self.fwd_vel.getVelocityField()
mygradient = self.grad_like(output_density)
# getlike(dens, vel)
mygradient, velgradient = self.grad_like(output_density, output_velocity)
mygradient = np.array(mygradient, dtype=np.float64)
vgradient = np.array(velgradient, dtype=np.float64)
self.fwd_vel.computeAdjointModel(vgradient)
self.fwd.adjointModel_v2(mygradient)
mygrad_hat = np.zeros(s_hat.shape, dtype=np.complex128)
self.fwd.getAdjointModel(mygrad_hat)
self.fwd.clearAdjointGradient()
return mygrad_hat
@ -344,7 +361,7 @@ class VelocityBORGLikelihood(borg.likelihood.BaseLikelihood):
- state (borg.state.State): The state object containing the final density field.
"""
self.updateCosmology(self.fwd.getCosmoParams())
self.dens2like(self.delta)
self.dens2like(self.delta, self.vel)
state["BORG_final_density"][:] = self.delta
@ -422,7 +439,7 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
"""
global chain, fwd_param
global chain, fwd_param, fwd_vel
myprint("Building gravity model")
if ini_file is None:
@ -448,7 +465,7 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
if config['model']['gravity'] == 'linear':
raise NotImplementedError(config['model']['gravity'])
elif config['model']['gravity'] == 'lpt':
chain @= borg.forward.model_lib.M_LPT_CIC(
mod = borg.forward.model_lib.M_LPT_CIC(
box,
opts=dict(a_initial=af,
a_final=af,
@ -457,7 +474,7 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
lightcone=False,
part_factor=1.01,))
elif config['model']['gravity'] == '2lpt':
chain @= borg.forward.model_lib.M_2LPT_CIC(
mod = borg.forward.model_lib.M_2LPT_CIC(
box,
opts=dict(a_initial=af,
a_final=af,
@ -466,7 +483,7 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
lightcone=False,
part_factor=1.01,))
elif config['model']['gravity'] == 'pm':
chain @= borg.forward.model_lib.M_PM_CIC(
mod = borg.forward.model_lib.M_PM_CIC(
box,
opts=dict(a_initial=af,
a_final=af,
@ -478,7 +495,7 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
pm_nsteps=int(config['model']['nsteps']),
tcola=False))
elif config['model']['gravity'] == 'cola':
chain @= borg.forward.model_lib.M_PM_CIC(
mod = borg.forward.model_lib.M_PM_CIC(
box,
opts=dict(a_initial=af,
a_final=af,
@ -492,6 +509,9 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
else:
raise NotImplementedError(config['model']['gravity'])
mod.accumulateAdjoint(True)
chain @= mod
# Cosmological parameters
if ini_file is None:
cpar = utils.get_cosmopar(borg.getIniConfigurationFilename())
@ -501,10 +521,13 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
# This is the forward model for the model parameters
fwd_param = borg.forward.ChainForwardModel(box)
mod = forwards.NullForward(box)
fwd_param.addModel(mod)
mod_null = forwards.NullForward(box)
fwd_param.addModel(mod_null)
fwd_param.setCosmoParams(cpar)
# This is the forward model for velocity
fwd_vel = borg.forward.velocity.LinearModel(box, mod, af)
return chain
@ -512,6 +535,7 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
def build_sampler(
state: borg.likelihood.MarkovState,
info: borg.likelihood.LikelihoodInfo,
loop: borg.samplers.MainLoop
):
"""
Builds the sampler and returns it.
@ -521,6 +545,7 @@ def build_sampler(
Args:
- state (borg.likelihood.MarkovState): The Markov state object to be used in the likelihood.
- info (borg.likelihood.LikelihoodInfo): The likelihood information.
ADD LOOP - DEFINE CONDITIONS AND DEPENDENCIES
Returns:
List of samplers to use.
@ -554,11 +579,19 @@ def build_sampler(
else:
s = f'Could not find {p} prior and/or default, so will not sample'
warnings.warn(s, stacklevel=2)
# Remove for later to prevent duplication
# Remove for later to prevent duplication
to_sample.remove(p)
def myfun(loop):
return loop.getStepId() > 1000 # put this in ini file
if len(params) > 0:
myprint('Adding cosmological parameter sampler')
all_sampler.append(borg.samplers.ModelParamsSampler(prefix, params, likelihood, chain, initial_values, prior))
cosmo_sampler = borg.samplers.ModelParamsSampler(prefix, params, likelihood, chain, initial_values, prior)
cosmo_sampler.setName("cosmo_sampler")
all_sampler.append(cosmo_sampler)
loop.addToConditionGroup("warmup_cosmo", "cosmo_sampler")
loop.addConditionToConditionGroup("warmup_cosmo", partial(myfun, loop))
# Model parameter sampler
prefix = ""
@ -623,5 +656,11 @@ def build_likelihood(state: borg.likelihood.MarkovState, info: borg.likelihood.L
myprint("Building likelihood")
myprint(chain.getCosmoParams())
boxm = chain.getBoxModel()
likelihood = VelocityBORGLikelihood(chain, fwd_param, borg.getIniConfigurationFilename())
return likelihood
likelihood = VelocityBORGLikelihood(chain, fwd_param, fwd_vel, borg.getIniConfigurationFilename())
return likelihood
"""
TO DO
- samplers.MainLoop - add condition that something begins sampling after some number of steps
"""

View file

@ -45,7 +45,7 @@ def radially_scatter(xtrue, frac_sig_x):
return xmeas, sigma_mu
def borg_mock(s_hat, state, fwd_model, ini_file):
def borg_mock(s_hat, state, fwd_model, fwd_vel, ini_file, seed=None):
config = configparser.ConfigParser()
config.read(ini_file)
@ -60,20 +60,15 @@ def borg_mock(s_hat, state, fwd_model, ini_file):
# Get growth rate
cosmo = utils.get_cosmopar(ini_file)
cosmology = borg.cosmo.Cosmology(cosmo)
af = float(config['model']['af'])
f = cosmology.gplus(af) # dD / da
f *= af / cosmology.d_plus(af) # f = dlnD / dlna
# Get velocity
smooth_R = float(config['model']['smooth_R'])
output_vel = forwards.dens2vel_linear(output_density, f,
fwd_model.getOutputBoxModel().L[0], smooth_R)
output_vel = fwd_vel.getVelocityField()
# Add bulk flow
bulk_flow = np.array(ast.literal_eval(config['model']['bulk_flow']))
output_vel = output_vel + bulk_flow.reshape((3, 1, 1, 1))
if seed is not None:
np.random.seed(seed)
# Sample positions according to bias model
bias_epsilon = float(config['model']['bias_epsilon'])
R_max = float(config['mock']['R_max'])

View file

@ -31,6 +31,12 @@ random_ic = false
init_random_scaling = 0.1
bignum = 1e300
[hades]
algorithm = HMC
max_epsilon = 0.01
max_timesteps = 50
mixing = 1
[model]
gravity = lpt
af = 1.0
@ -74,7 +80,7 @@ NCAT = 0
NSAMP = 2
[mock]
seed = 5
seed = 123
R_max = 100
[python]
@ -90,4 +96,4 @@ frac_sig_rhMpc = 0.07
Nt = 230
muA = 1.0
alpha = 1.4
frac_sig_rhMpc = 0.07
frac_sig_rhMpc = 0.07

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -1,19 +1,20 @@
Memory still allocated at the end: 14.4902 MB
Memory still allocated at the end: 31.8652 MB
Statistics per context (name, allocated, freed, peak)
======================
*none* 80.4688 0.250069 14.9746
BORG LPT MODEL 533.774 532.007 14.9902
*none* 76.2188 0.250069 32.2871
BORG LPT MODEL 505.495 503.727 32.3027
BORGForwardModel::setup 0.000160217 0 2.23588
BorgLptModel::BorgLptModel 1.54688 0 2.23581
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/chain_forward_model.cpp]virtual void LibLSS::ChainForwardModel::forwardModel_v2(LibLSS::detail_input::ModelInput<3>) 240.656 80.2188 15.2402
LinearModel::getVelocityField 607.75 589.875 33.1465
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/chain_forward_model.cpp]virtual void LibLSS::ChainForwardModel::forwardModel_v2(LibLSS::detail_input::ModelInput<3>) 227.906 75.9688 32.5527
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forward_model.cpp]void LibLSS::BORGForwardModel::setupDefault() 0.53125 0 0.688934
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/borg_lpt.cpp]std::shared_ptr<LibLSS::BORGForwardModel> build_borg_lpt(std::shared_ptr<LibLSS::MPI_Communication>, const LibLSS::BoxModel&, const LibLSS::PropertyProxy&) [with Grid = LibLSS::ClassicCloudInCell<double>; LibLSS::BoxModel = LibLSS::NBoxModel<3>] 0 0 0.157661
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/particle_balancer/balanceinfo.hpp]void LibLSS::BalanceInfo::allocate(LibLSS::MPI_Communication*, size_t) 76.2534 76.0009 14.9902
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/particle_balancer/balanceinfo.hpp]void LibLSS::BalanceInfo::allocate(LibLSS::MPI_Communication*, size_t) 72.2135 71.961 32.3027
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/primordial_as.cpp]std::shared_ptr<LibLSS::BORGForwardModel> build_primordial_as(std::shared_ptr<LibLSS::MPI_Communication>, const LibLSS::BoxModel&, const LibLSS::PropertyProxy&) 0.078804 7.62939e-06 0.0788498
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/transfer_class.cpp]std::shared_ptr<LibLSS::BORGForwardModel> build_class(std::shared_ptr<LibLSS::MPI_Communication>, const LibLSS::BoxModel&, const LibLSS::PropertyProxy&) 0.078804 7.62939e-06 0.157669
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io/base.hpp]void LibLSS::detail_model::ModelIO<Nd>::transfer(LibLSS::detail_model::ModelIO<Nd>&&) [with long unsigned int Nd = 3] 0 235.156 0
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io/base.hpp]void LibLSS::detail_model::ModelIO<Nd>::transfer(LibLSS::detail_model::ModelIO<Nd>&&) [with long unsigned int Nd = 3] 0 222.656 0
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/samplers/core/gridLikelihoodBase.cpp]LibLSS::GridDensityLikelihoodBase<Dims>::GridDensityLikelihoodBase(LibLSS::MPI_Communication*, const GridSizes&, const GridLengths&) [with int Dims = 3; GridSizes = std::array<long unsigned int, 3>; GridLengths = std::array<double, 3>] 0.53125 0.515625 2.76713
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/python/pyforward.cpp]void do_get_density_final(LibLSS::BORGForwardModel*, pybind11::array) 80.2188 75.5 14.9902
lpt_ic 80.2188 80.2188 15.2558
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/python/pyforward.cpp]void do_get_density_final(LibLSS::BORGForwardModel*, pybind11::array) 75.9688 71.5 32.3027
lpt_ic 75.9688 75.9688 32.5683

View file

@ -8,10 +8,10 @@ import borg_velocity.forwards as forwards
import borg_velocity.utils as utils
ini_file = '../conf/basic_ini.ini'
test_scaling = False
test_sigma8 = False
test_omegam = False
test_alpha = False
test_scaling = True
test_sigma8 = True
test_omegam = True
test_alpha = True
test_muA = True
# Input box
@ -27,7 +27,8 @@ model = likelihood.build_gravity_model(None, box_in, ini_file=ini_file)
cosmo = utils.get_cosmopar(ini_file)
model.setCosmoParams(cosmo)
fwd_param = forwards.NullForward(box_in)
mylike = likelihood.VelocityBORGLikelihood(model, fwd_param, ini_file)
fwd_vel = likelihood.fwd_vel
mylike = likelihood.VelocityBORGLikelihood(model, fwd_param, fwd_vel, ini_file)
# Create mock data
state = borg.likelihood.MarkovState()
@ -111,7 +112,7 @@ if test_omegam:
# Test bias model
if test_alpha:
all_alpha = np.linspace(-1.0, 5.0, 50)
all_alpha = np.linspace(-2.0, 5.0, 50)
all_lkl = np.empty(all_alpha.shape)
for i, alpha in enumerate(all_alpha):
mylike.fwd_param.setModelParams({'alpha0':alpha})
@ -135,12 +136,12 @@ if test_alpha:
# Test bias model
if test_muA:
all_muA = np.linspace(0.5, 1.5, 50)
all_muA = np.linspace(0.95, 1.05, 50)
all_lkl = np.empty(all_muA.shape)
for i, muA in enumerate(all_muA):
mylike.fwd_param.setModelParams({'muA0':muA})
mylike.fwd_param.setModelParams({'mua0':muA})
all_lkl[i] = mylike.logLikelihoodComplex(s_hat, None)
mylike.fwd_param.setModelParams({'muA0':mylike.muA[0]})
mylike.fwd_param.setModelParams({'mua0':mylike.muA[0]})
fid_lkl = mylike.logLikelihoodComplex(s_hat, None)
all_lkl -= fid_lkl
all_lkl = np.exp(-all_lkl)

View file

@ -4,48 +4,51 @@ Cumulative timing spent in different context
--------------------------------------------
Context, Total time (seconds)
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/chain_forward_model.cpp]virtual void LibLSS::ChainForwardModel::forwardModel_v2(LibLSS::detail_input::ModelInput<3>) 302 6.31245
BORG LPT MODEL 302 5.82636
BORG forward model 302 5.80025
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forward_model.cpp]void LibLSS::ForwardModel::setCosmoParams(const LibLSS::CosmologicalParameters&) 29 1.56883
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/borg_lpt.cpp]void LibLSS::BorgLptModel<CIC>::updateCosmo() [with CIC = LibLSS::ClassicCloudInCell<double>] 5 0.710055
lightcone computation 1 0.69232
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/cosmo.cpp]void LibLSS::Cosmology::precompute_d_plus() 1 0.603931
lpt_ic 302 0.392354
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/lpt/borg_fwd_lpt.cpp]void LibLSS::BorgLptModel<CIC>::getDensityFinal(LibLSS::detail_output::ModelOutput<3>) [with CIC = LibLSS::ClassicCloudInCell<double>] 302 0.321819
Classic CIC projection 302 0.256846
FFTW_Manager::execute_c2r 906 0.122506
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/transfer_class.cpp]virtual void LibLSS::ForwardClass::updateCosmo() 5 0.0733008
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/class_cosmo.cpp]LibLSS::ClassCosmo::ClassCosmo(const LibLSS::CosmologicalParameters&, unsigned int, double, std::string, unsigned int, const std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&) 1 0.0726085
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/cosmo.cpp]void LibLSS::Cosmology::precompute_com2a() 1 0.0703289
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/python/pyforward.cpp]void do_get_density_final(LibLSS::BORGForwardModel*, pybind11::array) 302 0.0631881
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/python/pyforward.cpp]void transfer_in(std::shared_ptr<LibLSS::FFTW_Manager<double, 3> >&, T&, U&, bool) [with T = boost::multi_array_ref<std::complex<double>, 3>; U = pybind11::detail::unchecked_reference<std::complex<double>, 3>] 302 0.0370347
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]LibLSS::detail_output::ModelOutputBase<Nd, Super>::~ModelOutputBase() [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 3322 0.0272583
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/chain_forward_model.cpp]virtual void LibLSS::ChainForwardModel::getDensityFinal(LibLSS::detail_output::ModelOutput<3>) 302 0.0215866
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_output::ModelOutputBase<Nd, Super>::transfer(LibLSS::detail_output::ModelOutputBase<Nd, Super>&&) [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 2718 0.0201743
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/particle_balancer/balanceinfo.hpp]void LibLSS::BalanceInfo::allocate(LibLSS::MPI_Communication*, size_t) 302 0.0151142
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io/base.hpp]void LibLSS::detail_model::ModelIO<Nd>::transfer(LibLSS::detail_model::ModelIO<Nd>&&) [with long unsigned int Nd = 3] 6946 0.00685386
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/primordial_as.cpp]virtual void LibLSS::ForwardPrimordial_As::forwardModel_v2(LibLSS::detail_input::ModelInput<3>) 302 0.00566568
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/borg_lpt.cpp]std::shared_ptr<LibLSS::BORGForwardModel> build_borg_lpt(std::shared_ptr<LibLSS::MPI_Communication>, const LibLSS::BoxModel&, const LibLSS::PropertyProxy&) [with Grid = LibLSS::ClassicCloudInCell<double>; LibLSS::BoxModel = LibLSS::NBoxModel<3>] 1 0.00491132
BorgLptModel::BorgLptModel 1 0.00483932
FFTW_Manager::create_r2c_plan 3 0.00401923
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/transfer_class.cpp]virtual void LibLSS::ForwardClass::forwardModel_v2(LibLSS::detail_input::ModelInput<3>) 302 0.00395206
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/adapt_generic_bias.cpp]void {anonymous}::bias_registrator() 1 0.00265152
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_output::ModelOutputBase<Nd, Super>::close() [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 3322 0.00252739
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forward_model.cpp]void LibLSS::BORGForwardModel::setupDefault() 1 0.00234709
FFTW_Manager::create_c2r_plan 2 0.00231646
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/transfer_class.cpp]std::shared_ptr<LibLSS::BORGForwardModel> build_class(std::shared_ptr<LibLSS::MPI_Communication>, const LibLSS::BoxModel&, const LibLSS::PropertyProxy&) 1 0.00229587
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/primordial_as.cpp]std::shared_ptr<LibLSS::BORGForwardModel> build_primordial_as(std::shared_ptr<LibLSS::MPI_Communication>, const LibLSS::BoxModel&, const LibLSS::PropertyProxy&) 1 0.00227005
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/samplers/core/gridLikelihoodBase.cpp]LibLSS::GridDensityLikelihoodBase<Dims>::GridDensityLikelihoodBase(LibLSS::MPI_Communication*, const GridSizes&, const GridLengths&) [with int Dims = 3; GridSizes = std::array<long unsigned int, 3>; GridLengths = std::array<double, 3>] 1 0.00177235
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/class_cosmo.cpp]void LibLSS::ClassCosmo::retrieve_Tk(double) 2 0.00115242
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_output::ModelOutputBase<Nd, Super>::setRequestedIO(LibLSS::PreferredIO) [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 1208 0.00107811
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/class_cosmo.cpp]void LibLSS::ClassCosmo::reinterpolate(const array_ref_1d&, const array_ref_1d&, LibLSS::internal_auto_interp::auto_interpolator<double>&) 6 0.00102937
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/primordial_as.cpp]virtual void LibLSS::ForwardPrimordial_As::updateCosmo() 10 0.0010009
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_input::ModelInputBase<Nd, Super>::setRequestedIO(LibLSS::PreferredIO) [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 906 0.000742612
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/primordial_as.cpp]void LibLSS::ForwardPrimordial_As::updatePower() 5 0.000559304
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_input::ModelInputBase<Nd, Super>::needDestroyInput() [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 302 0.000316937
particle distribution 302 0.000287307
BORGForwardModel::setup 7 0.000122816
Initializing peer system 12 4.3684e-05
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/transfer_class.cpp]virtual void LibLSS::ForwardClass::setModelParams(const LibLSS::ModelDictionnary&) 1 1.2359e-05
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forward_model.cpp]virtual void LibLSS::ForwardModel::setModelParams(const LibLSS::ModelDictionnary&) 1 2.473e-06
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forward_model.cpp]void LibLSS::ForwardModel::setCosmoParams(const LibLSS::CosmologicalParameters&) 439 128.974
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/borg_lpt.cpp]void LibLSS::BorgLptModel<CIC>::updateCosmo() [with CIC = LibLSS::ClassicCloudInCell<double>] 87 59.7371
lightcone computation 83 58.2376
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/cosmo.cpp]void LibLSS::Cosmology::precompute_d_plus() 83 50.8567
LinearModel::getVelocityField 286 13.1932
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/chain_forward_model.cpp]virtual void LibLSS::ChainForwardModel::forwardModel_v2(LibLSS::detail_input::ModelInput<3>) 286 6.19859
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/cosmo.cpp]void LibLSS::Cosmology::precompute_com2a() 83 5.85109
BORG LPT MODEL 286 5.68871
BORG forward model 286 5.65939
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/transfer_class.cpp]virtual void LibLSS::ForwardClass::updateCosmo() 87 4.72651
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/class_cosmo.cpp]LibLSS::ClassCosmo::ClassCosmo(const LibLSS::CosmologicalParameters&, unsigned int, double, std::string, unsigned int, const std::map<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >&) 83 4.65339
FFTW_Manager::create_c2r_plan 860 1.08067
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/lpt/borg_fwd_lpt.cpp]void LibLSS::BorgLptModel<CIC>::getDensityFinal(LibLSS::detail_output::ModelOutput<3>) [with CIC = LibLSS::ClassicCloudInCell<double>] 572 0.636041
Classic CIC projection 572 0.489137
lpt_ic 286 0.474278
FFTW_Manager::create_r2c_plan 289 0.377194
FFTW_Manager::execute_c2r 1716 0.297204
FFTW_Manager::destroy_plan 1144 0.0944267
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/class_cosmo.cpp]void LibLSS::ClassCosmo::retrieve_Tk(double) 166 0.0942418
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/class_cosmo.cpp]void LibLSS::ClassCosmo::reinterpolate(const array_ref_1d&, const array_ref_1d&, LibLSS::internal_auto_interp::auto_interpolator<double>&) 498 0.0858865
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/python/pyforward.cpp]void transfer_in(std::shared_ptr<LibLSS::FFTW_Manager<double, 3> >&, T&, U&, bool) [with T = boost::multi_array_ref<std::complex<double>, 3>; U = pybind11::detail::unchecked_reference<std::complex<double>, 3>] 286 0.0699093
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/python/pyforward.cpp]void do_get_density_final(LibLSS::BORGForwardModel*, pybind11::array) 286 0.0698282
FFTW_Manager::execute_r2c 286 0.0460398
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/chain_forward_model.cpp]virtual void LibLSS::ChainForwardModel::getDensityFinal(LibLSS::detail_output::ModelOutput<3>) 286 0.0272996
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]LibLSS::detail_output::ModelOutputBase<Nd, Super>::~ModelOutputBase() [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 3432 0.0272375
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/primordial_as.cpp]virtual void LibLSS::ForwardPrimordial_As::updateCosmo() 174 0.0224216
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/particle_balancer/balanceinfo.hpp]void LibLSS::BalanceInfo::allocate(LibLSS::MPI_Communication*, size_t) 286 0.018951
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_output::ModelOutputBase<Nd, Super>::transfer(LibLSS::detail_output::ModelOutputBase<Nd, Super>&&) [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 2574 0.0179214
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/primordial_as.cpp]void LibLSS::ForwardPrimordial_As::updatePower() 87 0.0121461
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io/base.hpp]void LibLSS::detail_model::ModelIO<Nd>::transfer(LibLSS::detail_model::ModelIO<Nd>&&) [with long unsigned int Nd = 3] 6578 0.00613989
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/primordial_as.cpp]virtual void LibLSS::ForwardPrimordial_As::forwardModel_v2(LibLSS::detail_input::ModelInput<3>) 286 0.00534198
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/borg_lpt.cpp]std::shared_ptr<LibLSS::BORGForwardModel> build_borg_lpt(std::shared_ptr<LibLSS::MPI_Communication>, const LibLSS::BoxModel&, const LibLSS::PropertyProxy&) [with Grid = LibLSS::ClassicCloudInCell<double>; LibLSS::BoxModel = LibLSS::NBoxModel<3>] 1 0.00492109
BorgLptModel::BorgLptModel 1 0.00485408
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/transfer_class.cpp]virtual void LibLSS::ForwardClass::forwardModel_v2(LibLSS::detail_input::ModelInput<3>) 286 0.00379283
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/transfer_class.cpp]std::shared_ptr<LibLSS::BORGForwardModel> build_class(std::shared_ptr<LibLSS::MPI_Communication>, const LibLSS::BoxModel&, const LibLSS::PropertyProxy&) 1 0.00279151
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/primordial_as.cpp]std::shared_ptr<LibLSS::BORGForwardModel> build_primordial_as(std::shared_ptr<LibLSS::MPI_Communication>, const LibLSS::BoxModel&, const LibLSS::PropertyProxy&) 1 0.00275793
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_output::ModelOutputBase<Nd, Super>::close() [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 3432 0.00244201
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forward_model.cpp]void LibLSS::BORGForwardModel::setupDefault() 1 0.00234473
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/samplers/core/gridLikelihoodBase.cpp]LibLSS::GridDensityLikelihoodBase<Dims>::GridDensityLikelihoodBase(LibLSS::MPI_Communication*, const GridSizes&, const GridLengths&) [with int Dims = 3; GridSizes = std::array<long unsigned int, 3>; GridLengths = std::array<double, 3>] 1 0.00177276
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_output::ModelOutputBase<Nd, Super>::setRequestedIO(LibLSS::PreferredIO) [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 1430 0.00117615
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/adapt_generic_bias.cpp]void {anonymous}::bias_registrator() 1 0.00110666
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_input::ModelInputBase<Nd, Super>::setRequestedIO(LibLSS::PreferredIO) [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 858 0.000657356
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/model_io.cpp]void LibLSS::detail_input::ModelInputBase<Nd, Super>::needDestroyInput() [with long unsigned int Nd = 3; Super = LibLSS::detail_model::ModelIO<3>] 286 0.00030629
particle distribution 286 0.000249263
BORGForwardModel::setup 7 0.000130953
Initializing peer system 13 4.4624e-05
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forwards/transfer_class.cpp]virtual void LibLSS::ForwardClass::setModelParams(const LibLSS::ModelDictionnary&) 1 1.445e-05
[/build/jenkins/miniconda3/envs/builder/conda-bld/aquila_borg_1686906696789/work/libLSS/physics/forward_model.cpp]virtual void LibLSS::ForwardModel::setModelParams(const LibLSS::ModelDictionnary&) 1 3.659e-06