4#include "mc/prng/prng.hpp"
5#include <biocma_cst_config.hpp>
7#include <common/execinfo.hpp>
8#include <common/logger.hpp>
10#include <mc/domain.hpp>
11#include <mc/particles_container.hpp>
12#include <mc/traits.hpp>
21 template <ModelType Model>
23 log_model_info(
const std::shared_ptr<IO::Logger>& _logger)
31 _logger->print(
"Model",
IO::format(Model::name,
" Const Weights"));
35 _logger->print(
"Model",
"Const Weights");
50 AutoGenerated::ContainerVariant&& container,
70 template <ModelType Model>
71 std::unique_ptr<MonteCarloUnit>
72 init(
const std::shared_ptr<IO::Logger>& _logger,
76 std::span<double> volumes,
77 std::span<const size_t> _neighbors,
82 log_model_info<Model>(_logger);
84 auto unit = std::make_unique<MonteCarloUnit>();
86 unit->rng =
KPRNG(seed);
98 catch (
const std::runtime_error& e)
103 _logger->error(e.what());
Utilities and wrap around kokkos random generator.
Definition prng.hpp:76
Main owning object for Monte-Carlo particles.
Definition particles_container.hpp:57
Represents the spatial domain where Monte Carlo particles can exist.
Definition domain.hpp:56
Concept to check if a model type has uniform_weight
Definition traits.hpp:203
std::string format(MsgType &&... msgs)
Definition logger.hpp:160
Namespace that contains classes and structures related to Monte Carlo (MC) simulations.
Definition alias.hpp:16
void impl_init(const ExecInfo &info, double &total_mass, uint64_t n_particles, MonteCarloUnit &unit, AutoGenerated::ContainerVariant &&container, bool uniform_init)
Definition unit.cpp:261
RuntimeParameters load_tuning_constant()
Definition unit.cpp:312
std::unique_ptr< MonteCarloUnit > init(const std::shared_ptr< IO::Logger > &_logger, const ExecInfo &info, uint64_t n_particles, std::size_t seed, std::span< double > volumes, std::span< const size_t > _neighbors, bool uniform_mc_init, double &total_mass)
Helper function to initialize a MonteCarloUnit.
Definition mcinit.hpp:72
void post_init_weight(std::unique_ptr< MonteCarloUnit > &unit, double x0, double total_mass)
Definition unit.cpp:234
Definition execinfo.hpp:21
General-purpose Monte Carlo unit to carry out simulations.
Definition unit.hpp:34