2#ifndef __BIO_MODEL_USER_HPP__
3# define __BIO_MODEL_USER_HPP__
4# include <mc/traits.hpp>
12 static constexpr std::string_view
name =
"udf_model";
17 using Config = Kokkos::View<float**>;
19 KOKKOS_FUNCTION
static void
21 [[maybe_unused]] std::size_t idx,
25 KOKKOS_FUNCTION
static double
26 mass([[maybe_unused]] std::size_t idx,
36 [[maybe_unused]] std::size_t idx,
40 KOKKOS_FUNCTION
static void
42 [[maybe_unused]] std::size_t idx,
43 [[maybe_unused]] std::size_t idx2,
47 KOKKOS_FUNCTION
static void
49 [[maybe_unused]] std::size_t position,
50 [[maybe_unused]]
double weight,
54 static std::vector<std::string_view>
names();
Definition traits.hpp:151
Model that can export properties.
Definition traits.hpp:187
Model type.
Definition traits.hpp:145
Kokkos::Subview< KernelConcentrationType, int, decltype(Kokkos::ALL)> LocalConcentration
Definition alias.hpp:105
Status
Definition alias.hpp:58
gen_pool_type< Kokkos::DefaultExecutionSpace > pool_type
Definition alias.hpp:39
decltype( Kokkos::Experimental::create_scatter_view(kernelContribution())) ContributionView
Definition alias.hpp:88
Kokkos::View< F **, Kokkos::LayoutRight > DynParticlesModel
Definition alias.hpp:21
Models definition.
Definition config_loader.hpp:9
Definition udf_model.hpp:9
static MC::ContribIndexBounds get_bounds()
Definition udfmodel_user.cpp:61
Kokkos::View< float ** > Config
Definition udf_model.hpp:17
static std::vector< std::size_t > get_number()
Definition udfmodel_user.cpp:74
static KOKKOS_FUNCTION void division(const MC::pool_type &random_pool, std::size_t idx, std::size_t idx2, const SelfParticle &arr, const SelfParticle &buffer_arr)
Definition udfmodel_user.cpp:39
static void set_nvar()
Definition udfmodel_user.cpp:49
static constexpr std::string_view name
Definition udf_model.hpp:12
static KOKKOS_FUNCTION void init(const MC::pool_type &random_pool, std::size_t idx, const SelfParticle &arr, const Self::Config &config)
Definition udfmodel_user.cpp:14
static KOKKOS_FUNCTION MC::Status update(const MC::pool_type &random_pool, FloatType d_t, std::size_t idx, const SelfParticle &arr, const MC::LocalConcentration &c)
Definition udfmodel_user.cpp:29
MC::DynParticlesModel< FloatType > SelfParticle
Definition udf_model.hpp:16
static KOKKOS_FUNCTION void contribution(std::size_t idx, std::size_t position, double weight, const SelfParticle &arr, const MC::ContributionView &contributions)
float FloatType
Definition udf_model.hpp:15
UdfModel Self
Definition udf_model.hpp:14
std::true_type uniform_weight
Definition udf_model.hpp:13
static Self::Config get_config(std::size_t n)
Definition udfmodel_user.cpp:67
static KOKKOS_FUNCTION double mass(std::size_t idx, const SelfParticle &arr)
Definition udfmodel_user.cpp:23
static std::size_t n_var
Definition udf_model.hpp:11
static std::vector< std::string_view > names()
Definition udfmodel_user.cpp:55