OPAL (Object Oriented Parallel Accelerator Library) 2024.2
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//
19
21
22namespace PyOpal {
23 template <>
24 std::vector<PyOpalObjectNS::AttributeDef>
26 {"B0", "b0", "", PyOpalObjectNS::DOUBLE},
27 {"FIELD_INDEX", "field_index", "", PyOpalObjectNS::DOUBLE},
28 {"WIDTH", "width", "", PyOpalObjectNS::DOUBLE},
29 {"MAX_HORIZONTAL_POWER", "max_horizontal_power", "", PyOpalObjectNS::INT},
30 {"END_LENGTH", "end_length", "", PyOpalObjectNS::DOUBLE},
31 {"CENTRE_LENGTH", "centre_length", "", PyOpalObjectNS::DOUBLE},
32 {"BB_LENGTH", "bb_length", "", PyOpalObjectNS::DOUBLE},
33 {"HEIGHT_NEG_EXTENT", "height_neg_extent", "", PyOpalObjectNS::DOUBLE},
34 {"HEIGHT_POS_EXTENT", "height_pos_extent", "", PyOpalObjectNS::DOUBLE},
35 };
36
37 template <>
39 "VerticalFFAMagnet class is a field element that models a Vertical FFA magnet.";
40
42
43 const char* module_docstring = "vertical_ffa_magnet contains the VerticalFFAMagnet class";
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 } // namespace PyVerticalFFAMagnet
54} // namespace PyOpal
void Initialise()
Definition Globals.cpp:50
BOOST_PYTHON_MODULE(vertical_ffa_magnet)
static std::vector< AttributeDef > attributes
void addGetFieldValue(PYCLASS &pyclass, double distanceUnits, double timeUnits, double bfieldUnits, double efieldUnits)
boost::python::class_< PyC > make_element_class(const char *className)