4#include <biocma_cst_config.hpp>
6#include <common/execinfo.hpp>
7#include <common/logger.hpp>
9#include <mc/domain.hpp>
10#include <mc/particles_container.hpp>
11#include <mc/traits.hpp>
20 template <ModelType Model>
22 log_model_info(
const std::shared_ptr<IO::Logger>& _logger)
30 _logger->print(
"Model",
IO::format(Model::name,
" Const Weights"));
34 _logger->print(
"Model",
"Const Weights");
47 AutoGenerated::ContainerVariant&& container,
67 template <ModelType Model>
68 std::unique_ptr<MonteCarloUnit>
69 init(
const std::shared_ptr<IO::Logger>& _logger,
71 std::size_t n_samples,
72 std::span<double> volumes,
73 std::span<const size_t> _neighbors,
78 log_model_info<Model>(_logger);
80 auto unit = std::make_unique<MonteCarloUnit>();
93 catch (
const std::runtime_error& e)
98 _logger->error(e.what());
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:55
Concept to check if a model type has uniform_weight
Definition traits.hpp:201
std::string format(MsgType &&... msgs)
Definition logger.hpp:132
Namespace that contains classes and structures related to Monte Carlo (MC) simulations.
Definition alias.hpp:16
std::unique_ptr< MonteCarloUnit > init(const std::shared_ptr< IO::Logger > &_logger, uint64_t n_particles, std::size_t n_samples, 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:69
RuntimeParameters load_tuning_constant()
Definition unit.cpp:309
void impl_init(double &total_mass, uint64_t n_particles, MonteCarloUnit &unit, AutoGenerated::ContainerVariant &&container, bool uniform_init)
Definition unit.cpp:260
void post_init_weight(std::unique_ptr< MonteCarloUnit > &unit, double x0, double total_mass)
Definition unit.cpp:233
General-purpose Monte Carlo unit to carry out simulations.
Definition unit.hpp:34