35 auto* p =
dynamic_cast<MultipoleT*
>(object_m->getElement());
40 std::vector<PyOpalObjectNS::AttributeDef>
43 {
"LFRINGE",
"left_fringe",
"",
DOUBLE},
44 {
"RFRINGE",
"right_fringe",
"",
DOUBLE},
45 {
"HAPERT",
"horizontal_aperture",
"",
DOUBLE},
46 {
"VAPERT",
"vertical_aperture",
"",
DOUBLE},
47 {
"ANGLE",
"angle",
"",
DOUBLE},
48 {
"EANGLE",
"entrance_angle",
"",
DOUBLE},
49 {
"MAXFORDER",
"maximum_f_order",
"",
DOUBLE},
50 {
"MAXXORDER",
"maximum_x_order",
"",
DOUBLE},
51 {
"ROTATION",
"rotation",
"",
DOUBLE},
52 {
"VARRADIUS",
"variable_radius",
"",
BOOL},
53 {
"BBLENGTH",
"bounding_box_length",
"",
DOUBLE},
54 {
"ENTRYOFFSET",
"entry_offset",
"",
DOUBLE},
55 {
"L",
"length",
"",
DOUBLE},
56 {
"DELETEONTRANSVERSEEXIT",
"delete_on_transverse_exit",
"",
BOOL},
57 {
"SCALING_MODEL",
"scaling_model",
"",
STRING},
62 "MultipoleT class is a field element that models a Multipole with maxwellian\n"
63 "fringe fields. Placement is from the magnet entry point in line with other"
64 "elements, however, when VARRADIUS is true this can be switch to about the centre "
65 "of the field object by setting ENTRYOFFSET to L/2.\n";
67 namespace PyMultipoleT {
77 elementClass.def(
"update_time_dependence",
constexpr double e
The value of.
void registerExceptions()
Register exception translations with boost.
void Initialise()
Globals namespace provides routines to initialise global objects:
BOOST_PYTHON_MODULE(multipolet)
const auto * module_docstring
void initialiseTimeDepencencies() const
PyOpalObject<C> is the basic wrapper class for Opal Objects.
void addGetFieldValue(PYCLASS &pyclass, double distanceUnits, double timeUnits, double bfieldUnits, double efieldUnits)
Add a "get_field_value" method to the python class (for elements that expose a field)
virtual void doSetup()
Overload the method to perform any additional setup that can be made before the OpalObject is accesse...
boost::python::class_< PyC > make_element_class(const char *className)
This is the basic method to make a class for elements.