OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
PyVerticalFFAMagnet.cpp
Go to the documentation of this file.
1 //
2 // Python API for OpalVerticalFFAMagnet
3 //
4 // Copyright (c) 2022 - 2023, Chris Rogers, STFC Rutherford Appleton Laboratory, Didcot, UK
5 //
6 // This file is part of OPAL.
7 //
8 // OPAL is free software: you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation, either version 3 of the License, or
11 // (at your option) any later version.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with OPAL. If not, see <https://www.gnu.org/licenses/>.
15 //
17 #include "PyOpal/PyCore/Globals.h"
19 
21 
22 namespace PyOpal {
23 namespace PyVerticalFFAMagnet {
24 
25 const char* module_docstring =
26  "vertical_ffa_magnet contains the VerticalFFAMagnet class";
27 
28 template <>
29 std::vector<PyOpalObjectNS::AttributeDef> PyOpalObjectNS::PyOpalObject<OpalVerticalFFAMagnet>::attributes = {
30  {"B0", "b0", "", PyOpalObjectNS::DOUBLE},
31  {"FIELD_INDEX", "field_index", "", PyOpalObjectNS::DOUBLE},
32  {"WIDTH", "width", "", PyOpalObjectNS::DOUBLE},
33  {"MAX_HORIZONTAL_POWER", "max_horizontal_power", "", PyOpalObjectNS::INT},
34  {"END_LENGTH", "end_length", "", PyOpalObjectNS::DOUBLE},
35  {"CENTRE_LENGTH", "centre_length", "", PyOpalObjectNS::DOUBLE},
36  {"BB_LENGTH", "bb_length", "", PyOpalObjectNS::DOUBLE},
37  {"HEIGHT_NEG_EXTENT", "height_neg_extent", "", PyOpalObjectNS::DOUBLE},
38  {"HEIGHT_POS_EXTENT", "height_pos_extent", "", PyOpalObjectNS::DOUBLE},
39 };
40 
41 template <>
43 "VerticalFFAMagnet class is a field element that models a Vertical FFA magnet.";
44 
45 BOOST_PYTHON_MODULE(vertical_ffa_magnet) {
49  auto elementClass = element.make_element_class("VerticalFFAMagnet");
50  element.addGetFieldValue(elementClass, 1.0, 1.0, 1.0, 1e-1);
51 }
52 
53 }
54 }
void Initialise()
Definition: Globals.cpp:50
BOOST_PYTHON_MODULE(vertical_ffa_magnet)
boost::python::class_< PyC > make_element_class(const char *className)
Definition: PyOpalObject.h:752
void addGetFieldValue(PYCLASS &pyclass, double distanceUnits, double timeUnits, double bfieldUnits, double efieldUnits)
Definition: PyOpalObject.h:805
constexpr double e
The value of .
Definition: Physics.h:39