OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
PyOption.cpp
Go to the documentation of this file.
1 //
2 // Python API for Option
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 
18 #include "PyOpal/PyCore/Globals.h"
20 
21 #include "BasicActions/Option.h"
22 
23 namespace PyOpal {
24 namespace PyOptionNS {
25 
26 // DOUBLE, STRING, BOOL, INT
27 template <>
28 std::vector<PyOpalObjectNS::AttributeDef> PyOpalObjectNS::PyOpalObject<Option>::attributes = {
29  {"ECHO", "echo", "", PyOpalObjectNS::BOOL},
30  {"INFO", "info", "", PyOpalObjectNS::BOOL},
31  {"TRACE", "trace", "", PyOpalObjectNS::BOOL},
32  {"WARN", "warn", "", PyOpalObjectNS::BOOL},
33  {"TELL", "tell", "", PyOpalObjectNS::BOOL},
34  {"SEED", "seed", "", PyOpalObjectNS::DOUBLE},
35  {"PSDUMPFREQ", "ps_dump_frequency", "", PyOpalObjectNS::DOUBLE},
36  {"STATDUMPFREQ", "stat_dump_frequency", "", PyOpalObjectNS::DOUBLE},
37  {"SCSOLVEFREQ", "sc_solve_frequency", "", PyOpalObjectNS::DOUBLE},
38  {"SPTDUMPFREQ", "spt_dump_frequency", "", PyOpalObjectNS::DOUBLE},
39  {"MTSSUBSTEPS", "mts_substeps", "", PyOpalObjectNS::DOUBLE},
40  {"REMOTEPARTDEL", "remote_particle_delete", "", PyOpalObjectNS::DOUBLE},
41  {"PSDUMPFRAME", "ps_dump_frame", "", PyOpalObjectNS::PREDEFINED_STRING},
42  {"REPARTFREQ", "repartition_frequency", "", PyOpalObjectNS::DOUBLE},
43  {"MINBINEMITTED", "min_bin_emitted", "", PyOpalObjectNS::DOUBLE},
44  {"MINSTEPFORREBIN", "min_step_for_rebin", "", PyOpalObjectNS::DOUBLE},
45  {"REBINFREQ", "rebin_frequency", "", PyOpalObjectNS::DOUBLE},
46  {"RHODUMP", "rho_dump", "", PyOpalObjectNS::BOOL},
47  {"EBDUMP", "eb_dump", "", PyOpalObjectNS::BOOL},
48  {"CSRDUMP", "csr_dump", "", PyOpalObjectNS::BOOL},
49  {"AUTOPHASE", "autophase", "", PyOpalObjectNS::DOUBLE},
50  {"CZERO", "czero", "", PyOpalObjectNS::BOOL},
51  {"RNGTYPE", "rng_type", "", PyOpalObjectNS::PREDEFINED_STRING},
52  {"CLOTUNEONLY", "clo_tune_only", "", PyOpalObjectNS::BOOL},
53  {"NUMBLOCKS", "num_blocks", "", PyOpalObjectNS::DOUBLE},
54  {"RECYCLEBLOCKS", "recycle_blocks", "", PyOpalObjectNS::DOUBLE},
55  {"NLHS", "nlhs", "", PyOpalObjectNS::DOUBLE},
56  {"ENABLEHDF5", "enable_hdf5", "", PyOpalObjectNS::BOOL},
57  {"ENABLEVTK", "enable_vtk", "", PyOpalObjectNS::BOOL},
58  {"ASCIIDUMP", "ascii_dump", "", PyOpalObjectNS::BOOL},
59  {"BOUNDPDESTROYFQ", "bound_p_destroy", "", PyOpalObjectNS::DOUBLE},
60  {"BEAMHALOBOUNDARY", "beam_halo_boundary", "", PyOpalObjectNS::DOUBLE},
61  {"IDEALIZED", "idealized", "", PyOpalObjectNS::BOOL},
62  {"LOGBENDTRAJECTORY", "log_bend_trajectory", "", PyOpalObjectNS::BOOL},
63  {"VERSION", "version", "", PyOpalObjectNS::DOUBLE}
64 };
65 
70  auto optionClass = anOption.make_class("Option");
71  anOption.addExecute(optionClass);
72 }
73 
74 } // PyBeamNS
75 } // PyOpal
76 
void Initialise()
Definition: Globals.cpp:50
void addExecute(PYCLASS &pyclass)
Definition: PyOpalObject.h:761
BOOST_PYTHON_MODULE(option)
Definition: PyOption.cpp:66
boost::python::class_< PyC > make_class(const char *className)
Definition: PyOpalObject.h:745