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",
void registerExceptions()
BOOST_PYTHON_MODULE(multipolet)
const auto * module_docstring
void initialiseTimeDepencencies() const
void addGetFieldValue(PYCLASS &pyclass, double distanceUnits, double timeUnits, double bfieldUnits, double efieldUnits)
boost::python::class_< PyC > make_element_class(const char *className)