BioCMAMC-ST
CommonModelType Concept Reference

Concept to define a correct Model. More...

#include <traits.hpp>

Concept definition

template<typename T, typename ViewType>
concept CommonModelType = requires(T model,
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,
const MC::ContributionView& contributions,
const MC::KPRNG::pool_type& random_pool) {
{ 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
Definition traits.hpp:20
Kokkos::Subview< KernelConcentrationType, int, decltype(Kokkos::ALL)> LocalConcentration
Definition alias.hpp:41
Kokkos::Experimental::ScatterView< double **, Kokkos::LayoutRight > ContributionView
Definition alias.hpp:30

Detailed Description

Concept to define a correct Model.