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