OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
PyVerticalFFAMagnet.cpp
Go to the documentation of this file.
3
5
6//using namespace boost::python;
7namespace PyOpal {
8namespace PyVerticalFFAMagnet {
9
10std::string track_run_docstring = std::string();
11
12
13const char* module_docstring = "build a vertical_ffa_magnet";
14
15template <>
16std::vector<PyOpalObjectNS::AttributeDef> PyOpalObjectNS::PyOpalObject<OpalVerticalFFAMagnet>::attributes = {
17 {"B0", "b0", "", PyOpalObjectNS::DOUBLE},
18 {"FIELD_INDEX", "field_index", "", PyOpalObjectNS::DOUBLE},
19 {"MAX_HORIZONTAL_POWER", "max_horizontal_power", "", PyOpalObjectNS::INT},
20 {"CENTRE_LENGTH", "centre_length", "", PyOpalObjectNS::DOUBLE},
21 {"END_LENGTH", "end_length", "", PyOpalObjectNS::DOUBLE},
22 {"END_FIELD_MODEL", "end_field_model", "", PyOpalObjectNS::STRING},
23 {"ENGE_PARAMETERS", "enge_parameters", "", PyOpalObjectNS::FLOATLIST},
24 {"WIDTH", "width", "", PyOpalObjectNS::DOUBLE},
25 {"HEIGHT_NEG_EXTENT", "height_neg_extent", "", PyOpalObjectNS::DOUBLE},
26 {"HEIGHT_POS_EXTENT", "height_pos_extent", "", PyOpalObjectNS::DOUBLE},
27 {"BB_LENGTH", "bb_length", "", PyOpalObjectNS::DOUBLE},
28 {"BB_START_POSITION", "bb_start_position", "", PyOpalObjectNS::FLOATLIST},
29 {"BB_START_NORMAL", "bb_start_normal", "", PyOpalObjectNS::FLOATLIST},
30 {"BB_END_POSITION", "bb_end_position", "", PyOpalObjectNS::FLOATLIST},
31 {"BB_END_NORMAL", "bb_end_normal", "", PyOpalObjectNS::FLOATLIST}
32};
33
34template <>
36
37BOOST_PYTHON_MODULE(vertical_ffa_magnet) {
40 auto elementClass = element.make_class("VerticalFFAMagnet");
41 element.addGetOpalElement(elementClass);
42 elementClass.def("get_field_value", &PyOpalObjectNS::getFieldValue<OpalVerticalFFAMagnet>);
43}
44
45}
46}
BOOST_PYTHON_MODULE(vertical_ffa_magnet)
void addGetOpalElement(PYCLASS &pyclass)
Definition: PyOpalObject.h:462
boost::python::class_< PyC > make_class(const char *className)
Definition: PyOpalObject.h:439