OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
PyDistribution.cpp
Go to the documentation of this file.
5
6namespace PyOpal {
7namespace PyDistributionNS {
8
9template <>
10std::vector<PyOpalObjectNS::AttributeDef> PyOpalObjectNS::PyOpalObject<Distribution>::attributes = {
11 {"TYPE", "type", "", PyOpalObjectNS::PREDEFINED_STRING},
12 {"FNAME", "fname", "", PyOpalObjectNS::STRING},
13 {"INPUTMOUNITS", "momentum_units", "", PyOpalObjectNS::PREDEFINED_STRING},
14};
15
16void registerDistribution(PyOpalObjectNS::PyOpalObject<Distribution>& dist) {
17 Object* obj = &(*dist.getOpalShared());
18 obj->update();
20}
21
22BOOST_PYTHON_MODULE(distribution) {
25 PyOpalObjectNS::PyOpalObject<Distribution> distributionObject;
26 auto distributionClass = distributionObject.make_class("Distribution");
27 distributionObject.addExecute(distributionClass);
28 distributionClass.def("register", &registerDistribution);
29
30}
31
32} // PyDistribution
33} // PyOpal
34
void Initialise()
Definition: Globals.cpp:78
void registerDistribution(PyOpalObjectNS::PyOpalObject< Distribution > &dist)
BOOST_PYTHON_MODULE(distribution)
static std::vector< AttributeDef > attributes
Definition: PyOpalObject.h:193
The base class for all OPAL objects.
Definition: Object.h:48
virtual void update()
Update this object.
Definition: Object.cpp:263
static OpalData * getInstance()
Definition: OpalData.cpp:196
void define(Object *newObject)
Define a new object.
Definition: OpalData.cpp:489