Advanced Computing Platform for Theoretical Physics

PropelBase.cpp 871 Bytes
Newer Older
Chen Xia's avatar
Chen Xia committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <galprop/PropelBase.h>
#include "galpropy.hpp"

class PyPropelBase : PropelBase {
public:
    using PropelBase::PropelBase;
    void propel(Particle& p) override {
        PYBIND11_OVERRIDE_PURE(void, PropelBase, propel, p);
    }
};

class PyPropelOperatorFallback : PropelOperatorFallback {
public:
    using PropelOperatorFallback::PropelOperatorFallback;
    void propel(Particle& p) override {
        PYBIND11_OVERRIDE(void, PropelOperatorFallback, propel, p);
    }
};

void bind_PropelBase(py::module_ &m)
{
    py::class_<PropelBase, PyPropelBase>(m, "PropelBase")
        .def(py::init<const Galdef&>())
        .def("propel", &PropelBase::propel);

    py::class_<PropelOperatorFallback, PyPropelOperatorFallback>(
        m, "PropelOperatorFallback")
        .def(py::init<const Galdef&>())
        .def("propel", &PropelOperatorFallback::propel);
}