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
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,
26 MC::KPRNG k) noexcept;
27 KOKKOS_FUNCTION void contribution(MC::ParticleDataHolder& p,
28 const ContributionView& contrib) noexcept;
29
30 model_properties_detail_t get_properties() noexcept;
31 [[nodiscard]] KOKKOS_FUNCTION double mass() const noexcept;
32
33 private:
34 struct Impl;
35 Impl* pimpl = nullptr;
36 };
37 static_assert(ParticleModel<PimpModel>, "Check Pimpl");
38} // namespace PythonWrap
39
40#endif
Utilities and wrap around kokkos random generator.
Definition prng.hpp:31
KOKKOS_FUNCTION void init(MC::ParticleDataHolder &p, MC::KPRNG _rng)
Definition import_py.cpp:178
KOKKOS_FUNCTION void update(double d_t, MC::ParticleDataHolder &p, const LocalConcentrationView &concentration, MC::KPRNG _rng)
Definition import_py.cpp:187
KOKKOS_FUNCTION PimpModel division(MC::ParticleDataHolder &p, MC::KPRNG k) noexcept
Definition import_py.cpp:209
PimpModel & operator=(const PimpModel &)
Definition import_py.cpp:110
KOKKOS_FUNCTION void contribution(MC::ParticleDataHolder &p, const ContributionView &contrib) noexcept
Definition import_py.cpp:221
PimpModel(const PimpModel &)
Definition import_py.cpp:97
model_properties_detail_t get_properties() noexcept
Definition import_py.cpp:248
KOKKOS_FUNCTION double mass() const noexcept
Definition import_py.cpp:258
Impl * pimpl
Definition model_python.hpp:35
Definition model_python.hpp:8
Definition import_py.cpp:62