OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
PyAsymmetricEnge.cpp
Go to the documentation of this file.
5
8
9namespace PyOpal {
10 template <>
11 std::vector<PyOpalObjectNS::AttributeDef>
13 {"X0_START", "x0_start", "", PyOpalObjectNS::DOUBLE},
14 {"LAMBDA_START", "lambda_start", "", PyOpalObjectNS::DOUBLE},
15 {"COEFFICIENTS_START", "coefficients_start", "", PyOpalObjectNS::FLOAT_LIST},
16 {"X0_END", "x0_end", "", PyOpalObjectNS::DOUBLE},
17 {"LAMBDA_END", "lambda_end", "", PyOpalObjectNS::DOUBLE},
18 {"COEFFICIENTS_END", "coefficients_end", "", PyOpalObjectNS::FLOAT_LIST},
19 };
20
21 template <>
23 "AsymmetricEnge class is a field plugin that models a AsymmetricEnge function.\n"
24 "\n"
25 "It is referenced and set to field elements by use of the OPAL name (note not\n"
26 "any python name). The OPAL name is set using 'set_opal_name'.\n";
27
28 namespace PyAsymmetricEnge {
29
30 const char* module_docstring =
31 "asymmetric_enge module holds an AsymmetricEnge end field 'plugin' class for\n"
32 "use with field models\n";
33
34 BOOST_PYTHON_MODULE(asymmetric_enge) {
38 auto elementClass = element.make_element_class("AsymmetricEnge");
39 elementClass.def("function", &PyOpal::PyEndFieldModel::function<OpalAsymmetricEnge>);
40 elementClass.def("update", &PyOpalObjectNS::update<OpalAsymmetricEnge>);
41 }
42
43 } // namespace PyAsymmetricEnge
44} // namespace PyOpal
void Initialise()
Definition Globals.cpp:50
void update(PyOpalObjectNS::PyOpalObject< C > pyelement)
BOOST_PYTHON_MODULE(asymmetric_enge)
double function(PyOpalObjectNS::PyOpalObject< C > pyobject, double x, int n)
static std::vector< AttributeDef > attributes
boost::python::class_< PyC > make_element_class(const char *className)