1#ifndef __DEFAULT_MODEL_IMPLEMENTATION_HPP__
2#define __DEFAULT_MODEL_IMPLEMENTATION_HPP__
5#include <mc/traits.hpp>
18 static constexpr std::size_t
n_var = 1;
19 static constexpr std::string_view
name =
"default_dynamic";
27 KOKKOS_INLINE_FUNCTION
static void
29 [[maybe_unused]] std::size_t idx,
34 KOKKOS_INLINE_FUNCTION
static double
35 mass([[maybe_unused]] std::size_t idx,
44 [[maybe_unused]] std::size_t idx,
52 KOKKOS_INLINE_FUNCTION
static void
54 [[maybe_unused]] std::size_t idx,
55 [[maybe_unused]] std::size_t idx2,
61 KOKKOS_INLINE_FUNCTION
static void
63 [[maybe_unused]] std::size_t position,
64 [[maybe_unused]]
double weight,
88 static constexpr std::size_t
n_var = 1;
89 static constexpr std::string_view
name =
"default_dynamic";
103 KOKKOS_INLINE_FUNCTION
static void
105 [[maybe_unused]] std::size_t idx,
107 [[maybe_unused]]
const Config& config)
111 KOKKOS_INLINE_FUNCTION
static double
112 mass([[maybe_unused]] std::size_t idx,
121 [[maybe_unused]] std::size_t idx,
134 KOKKOS_INLINE_FUNCTION
static void
136 [[maybe_unused]] std::size_t idx,
137 [[maybe_unused]] std::size_t idx2,
143 KOKKOS_INLINE_FUNCTION
static void
145 [[maybe_unused]] std::size_t position,
146 [[maybe_unused]]
double weight,
Status
Definition alias.hpp:57
@ Idle
Definition alias.hpp:58
gen_pool_type< Kokkos::DefaultExecutionSpace > pool_type
Definition alias.hpp:38
decltype(Kokkos::Experimental::create_scatter_view(kernelContribution())) ContributionView
Definition alias.hpp:87
Kokkos::Subview< KernelConcentrationType, int, decltype(Kokkos::ALL)> LocalConcentration
Definition alias.hpp:95
Kokkos::View< F *[Nd], Kokkos::LayoutRight > ParticlesModel
Definition alias.hpp:18
Kokkos::View< F **, Kokkos::LayoutRight > DynParticlesModel
Definition alias.hpp:20
Definition m_default.hpp:13
float FloatType
Definition m_default.hpp:22
static KOKKOS_INLINE_FUNCTION void contribution(std::size_t idx, std::size_t position, double weight, const SelfParticle &arr, const MC::ContributionView &contributions)
Definition m_default.hpp:62
static MC::ContribIndexBounds get_bounds()
Definition m_default.hpp:69
DefaultModel Self
Definition m_default.hpp:21
static KOKKOS_INLINE_FUNCTION void init(const MC::pool_type &random_pool, std::size_t idx, const SelfParticle &arr)
Definition m_default.hpp:28
static KOKKOS_INLINE_FUNCTION double mass(std::size_t idx, const SelfParticle &arr)
Definition m_default.hpp:35
static constexpr std::size_t n_var
Definition m_default.hpp:18
std::true_type uniform_weight
Definition m_default.hpp:20
static constexpr bool uniform_weigth
Definition m_default.hpp:25
MC::ParticlesModel< Self::n_var, Self::FloatType > SelfParticle
Definition m_default.hpp:23
particle_var
Definition m_default.hpp:15
@ a
Definition m_default.hpp:16
static constexpr std::string_view name
Definition m_default.hpp:19
static KOKKOS_INLINE_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 m_default.hpp:53
std::nullopt_t Config
Definition m_default.hpp:24
static KOKKOS_INLINE_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 m_default.hpp:42
Definition m_default.hpp:82
static constexpr bool uniform_weigth
Definition m_default.hpp:95
static KOKKOS_INLINE_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 m_default.hpp:119
static constexpr std::string_view name
Definition m_default.hpp:89
static KOKKOS_INLINE_FUNCTION void contribution(std::size_t idx, std::size_t position, double weight, const SelfParticle &arr, const MC::ContributionView &contributions)
Definition m_default.hpp:144
static Config get_config(const std::size_t size)
Definition m_default.hpp:97
static constexpr std::size_t n_var
Definition m_default.hpp:88
DynamicDefaultModel Self
Definition m_default.hpp:91
static MC::ContribIndexBounds get_bounds()
Definition m_default.hpp:129
static KOKKOS_INLINE_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 m_default.hpp:135
static KOKKOS_INLINE_FUNCTION double mass(std::size_t idx, const SelfParticle &arr)
Definition m_default.hpp:112
float FloatType
Definition m_default.hpp:92
particle_var
Definition m_default.hpp:84
@ a
Definition m_default.hpp:85
static KOKKOS_INLINE_FUNCTION void init(const MC::pool_type &random_pool, std::size_t idx, const SelfParticle &arr, const Config &config)
Definition m_default.hpp:104
MC::DynParticlesModel< FloatType > SelfParticle
Definition m_default.hpp:93
std::true_type uniform_weight
Definition m_default.hpp:90
float Config
Definition m_default.hpp:94