OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
PyPolynomialTimeDependence.cpp
Go to the documentation of this file.
4 
7 
8 namespace PyOpal {
9 namespace PyOpalPolynomialTimeDependence {
10 
11 const char* module_docstring =
12 "polynomial_time_dependence module holds a PolynomialTimeDependence class";
13 
14 template <>
15 std::vector<PyOpalObjectNS::AttributeDef> PyOpalObjectNS::PyOpalObject<OpalPolynomialTimeDependence>::attributes = {
16  {"P0", "p0", "", PyOpalObjectNS::DOUBLE},
17  {"P1", "p1", "", PyOpalObjectNS::DOUBLE}, // lambda is a python reserved word
18  {"P2", "p2", "", PyOpalObjectNS::DOUBLE},
19  {"P3", "p3", "", PyOpalObjectNS::DOUBLE},
20 };
21 
22 
23 
24 template <>
26 "PolynomialTimeDependence class enables modelling time dependent behaviour.\n"
27 "\n"
28 "PolynomialTimeDependence class enables modelling lattice parameters that are\n"
29 "changing in time, for example RF voltages, frequencies, etc. The dependence\n"
30 "is referenced and set to field elements by use of the OPAL name (note not\n"
31 "any python name). The OPAL name is set/retrieved using 'set_opal_name' and\n"
32 "'get_opal_name' respectively.\n";
33 
34 BOOST_PYTHON_MODULE(polynomial_time_dependence) {
38  auto elementClass = element.make_class("PolynomialTimeDependence");
39  elementClass.def("function", &PyOpal::PyAbstractTimeDependence::function<OpalPolynomialTimeDependence>);
40  elementClass.def("update", &PyOpalObjectNS::update<OpalPolynomialTimeDependence>);
41 }
42 
43 }
44 }
void Initialise()
Definition: Globals.cpp:50
boost::python::class_< PyC > make_class(const char *className)
Definition: PyOpalObject.h:745