OPAL (Object Oriented Parallel Accelerator Library)
2024.2
OPAL
src
PyOpal
PyElements
PyVariableRFCavityFringeField.cpp
Go to the documentation of this file.
1
//
2
// Python API for OpalVariableRFCavityFringeField
3
//
4
// Copyright (c) 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 "
Classic/AbsBeamline/VariableRFCavityFringeField.h
"
21
#include "
Elements/OpalVariableRFCavityFringeField.h
"
22
#include "
Physics/Units.h
"
23
24
namespace
PyOpal
{
25
33
template
<>
34
void
PyOpalObjectNS::PyOpalObject<OpalVariableRFCavityFringeField>::doSetup
() {
35
object_m->update();
36
VariableRFCavityFringeField
* rf =
37
dynamic_cast<
VariableRFCavityFringeField
*
>
(object_m->getElement());
38
rf->
initialise
();
39
}
40
41
template
<>
42
std::vector<PyOpalObjectNS::AttributeDef>
43
PyOpalObjectNS::PyOpalObject<OpalVariableRFCavityFringeField>::attributes
= {
44
{
"PHASE_MODEL"
,
"phase_model"
,
""
,
PyOpalObjectNS::STRING
},
45
{
"AMPLITUDE_MODEL"
,
"amplitude_model"
,
""
,
PyOpalObjectNS::STRING
},
46
{
"FREQUENCY_MODEL"
,
"frequency_model"
,
""
,
PyOpalObjectNS::STRING
},
47
{
"WIDTH"
,
"width"
,
""
,
PyOpalObjectNS::DOUBLE
},
48
{
"HEIGHT"
,
"height"
,
""
,
PyOpalObjectNS::DOUBLE
},
49
{
"CENTRE_LENGTH"
,
"centre_length"
,
""
,
PyOpalObjectNS::DOUBLE
},
50
{
"END_LENGTH"
,
"end_length"
,
""
,
PyOpalObjectNS::DOUBLE
},
51
{
"CAVITY_CENTRE"
,
"cavity_centre"
,
""
,
PyOpalObjectNS::DOUBLE
},
52
{
"MAX_ORDER"
,
"max_order"
,
""
,
PyOpalObjectNS::DOUBLE
},
53
{
"L"
,
"length"
,
""
,
PyOpalObjectNS::DOUBLE
},
54
};
55
56
template
<>
57
std::string
PyOpalObjectNS::PyOpalObject<OpalVariableRFCavityFringeField>::classDocstring
=
58
"VariableRFCavityFringeField class is a field element that models a rectangular RF cavity."
;
59
60
namespace
PyVariableRFCavityFringeField {
61
62
const
char
*
module_docstring
=
63
"variable_rf_cavity contains the VariableRFCavityFringeField class"
;
64
65
BOOST_PYTHON_MODULE
(variable_rf_cavity_fringe_field) {
66
PyOpal::Globals::Initialise
();
67
ExceptionTranslation::registerExceptions
();
68
PyOpalObjectNS::PyOpalObject<OpalVariableRFCavityFringeField>
element;
69
auto
elementClass = element.
make_element_class
(
"VariableRFCavityFringeField"
);
70
element.
addGetFieldValue
(elementClass, 1.0,
Units::s2ns
, 1.0, 1e-1);
71
elementClass.def(
72
"update_time_dependence"
,
73
&
PyOpalObjectNS::PyOpalObject<OpalVariableRFCavityFringeField>::doSetup
);
74
}
75
}
// namespace PyVariableRFCavityFringeField
76
}
// namespace PyOpal
VariableRFCavityFringeField.h
Units.h
PyOpalObject.h
Globals.h
ExceptionTranslation.h
OpalVariableRFCavityFringeField.h
Units::s2ns
constexpr double s2ns
Definition
Units.h:44
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::DOUBLE
@ DOUBLE
Definition
PyOpalObject.h:81
PyOpal::PyOpalObjectNS::STRING
@ STRING
Definition
PyOpalObject.h:80
PyOpal::PyVariableRFCavityFringeField::BOOST_PYTHON_MODULE
BOOST_PYTHON_MODULE(variable_rf_cavity_fringe_field)
Definition
PyVariableRFCavityFringeField.cpp:65
PyOpal::PyVariableRFCavityFringeField::module_docstring
const char * module_docstring
Definition
PyVariableRFCavityFringeField.cpp:62
VariableRFCavityFringeField
Definition
VariableRFCavityFringeField.h:50
VariableRFCavityFringeField::initialise
void initialise() const
Definition
VariableRFCavityFringeField.h:189
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::doSetup
virtual void doSetup()
Definition
PyOpalObject.h:258
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