template<typename T, typename ViewType>
T::FloatType d_t,
std::size_t idx,
std::size_t idx2,
double weight,
const T::SelfParticle& arr,
const T::SelfParticle& buffer_arr,
std::size_t position,
{ T::n_var } -> std::convertible_to<std::size_t>;
typename T::FloatType;
typename T::SelfParticle;
typename T::Self;
{ T::n_var } -> std::convertible_to<std::size_t>;
{ T::init(random_pool, idx, arr) } -> std::same_as<void>;
{ T::mass(idx, arr) } -> std::same_as<double>;
{ T::update(random_pool, d_t, idx, arr, c) } -> std::convertible_to<MC::Status>;
{ T::contribution(idx, position, weight, arr, contributions) } -> std::same_as<void>;
{ T::division(random_pool, idx, idx2, arr, buffer_arr) } -> std::same_as<void>;
}
Kokkos::Random_XorShift1024_Pool< Kokkos::DefaultExecutionSpace > pool_type
Definition prng.hpp:17
Concept to define a correct Model.
Definition traits.hpp:43
Kokkos::Subview< KernelConcentrationType, int, decltype(Kokkos::ALL)> LocalConcentration
Definition alias.hpp:41
Kokkos::Experimental::ScatterView< double **, Kokkos::LayoutRight > ContributionView
Definition alias.hpp:30
Concept to define a correct Model.