BioCMAMC-ST
model_python.hpp
1#ifndef __MODEL_PYTHON_HPP__
2#define __MODEL_PYTHON_HPP__
3
4#define EXPORT __attribute__((visibility("default")))
5#include <mc/particles/particle_model.hpp>
6
7namespace PythonWrap
8{
9
10 class EXPORT PimpModel
11 {
12 public:
13 PimpModel(const PimpModel&);
14
15 PimpModel& operator=(const PimpModel&);
16 PimpModel(PimpModel&&)noexcept;
17 PimpModel& operator=(PimpModel&&) noexcept ;
18 PimpModel();
19 ~PimpModel();
20 KOKKOS_FUNCTION void init(MC::ParticleDataHolder& p, MC::KPRNG _rng);
21 KOKKOS_FUNCTION void update(double d_t,
22 MC::ParticleDataHolder& p,
23 const LocalConcentrationView& concentration,
24 MC::KPRNG _rng);
25 KOKKOS_FUNCTION PimpModel division(MC::ParticleDataHolder& p, MC::KPRNG k) noexcept;
26 KOKKOS_FUNCTION void contribution(MC::ParticleDataHolder& p, const ContributionView& contrib) noexcept;
27
28 model_properties_detail_t get_properties() noexcept;
29 [[nodiscard]] KOKKOS_FUNCTION double mass() const noexcept;
30
31 private:
32 struct Impl;
33 Impl* pimpl = nullptr;
34 };
35 static_assert(ParticleModel<PimpModel>, "Check Pimpl");
36} // namespace PythonWrap
37
38#endif
Utilities and wrap around kokkos random generator.
Definition prng.hpp:15
Definition model_python.hpp:11
Definition model_python.hpp:8
Definition import_py.cpp:61