OPAL (Object Oriented Parallel Accelerator Library)
2024.2
OPAL
src
PyOpal
PyElements
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
//
16
#include "
PyOpal/PyCore/ExceptionTranslation.h
"
17
#include "
PyOpal/PyCore/Globals.h
"
18
#include "
PyOpal/PyCore/PyOpalObject.h
"
19
20
#include "
Elements/OpalVerticalFFAMagnet.h
"
21
22
namespace
PyOpal
{
23
template
<>
24
std::vector<PyOpalObjectNS::AttributeDef>
25
PyOpalObjectNS::PyOpalObject<OpalVerticalFFAMagnet>::attributes
= {
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
<>
38
std::string
PyOpalObjectNS::PyOpalObject<OpalVerticalFFAMagnet>::classDocstring
=
39
"VerticalFFAMagnet class is a field element that models a Vertical FFA magnet."
;
40
41
namespace
PyVerticalFFAMagnet {
42
43
const
char
*
module_docstring
=
"vertical_ffa_magnet contains the VerticalFFAMagnet class"
;
44
45
BOOST_PYTHON_MODULE
(vertical_ffa_magnet) {
46
PyOpal::Globals::Initialise
();
47
ExceptionTranslation::registerExceptions
();
48
PyOpalObjectNS::PyOpalObject<OpalVerticalFFAMagnet>
element;
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
PyOpalObject.h
Globals.h
ExceptionTranslation.h
OpalVerticalFFAMagnet.h
PyOpal
Definition
ExceptionTranslation.cpp:21
PyOpal::ExceptionTranslation::registerExceptions
void registerExceptions()
Definition
ExceptionTranslation.cpp:23
PyOpal::Globals::Initialise
void Initialise()
Definition
Globals.cpp:50
PyOpal::PyOpalObjectNS::INT
@ INT
Definition
PyOpalObject.h:81
PyOpal::PyOpalObjectNS::DOUBLE
@ DOUBLE
Definition
PyOpalObject.h:81
PyOpal::PyVerticalFFAMagnet::module_docstring
const char * module_docstring
Definition
PyVerticalFFAMagnet.cpp:43
PyOpal::PyVerticalFFAMagnet::BOOST_PYTHON_MODULE
BOOST_PYTHON_MODULE(vertical_ffa_magnet)
Definition
PyVerticalFFAMagnet.cpp:45
PyOpal::PyOpalObjectNS::PyOpalObject
Definition
PyOpalObject.h:138
PyOpal::PyOpalObjectNS::PyOpalObject::addGetFieldValue
void addGetFieldValue(PYCLASS &pyclass, double distanceUnits, double timeUnits, double bfieldUnits, double efieldUnits)
Definition
PyOpalObject.h:805
PyOpal::PyOpalObjectNS::PyOpalObject::make_element_class
boost::python::class_< PyC > make_element_class(const char *className)
Definition
PyOpalObject.h:752
Generated on Tue Apr 14 2026 07:18:46 for OPAL (Object Oriented Parallel Accelerator Library) by
1.9.8