OPAL (Object Oriented Parallel Accelerator Library)
2024.2
OPAL
src
PyOpal
PyObjects
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
17
#include "
PyOpal/PyCore/ExceptionTranslation.h
"
18
#include "
PyOpal/PyCore/Globals.h
"
19
#include "
PyOpal/PyCore/PyOpalObject.h
"
20
21
#include "
BasicActions/Option.h
"
22
23
namespace
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
65
BOOST_PYTHON_MODULE
(option) {
66
ExceptionTranslation::registerExceptions
();
67
PyOpal::Globals::Initialise
();
68
PyOpalObjectNS::PyOpalObject<Option>
anOption;
69
auto
optionClass = anOption.
make_class
(
"Option"
);
70
anOption.
addExecute
(optionClass);
71
}
72
73
}
// namespace PyOptionNS
74
}
// namespace PyOpal
Option.h
PyOpalObject.h
Globals.h
ExceptionTranslation.h
PyOpal
Definition
ExceptionTranslation.cpp:21
PyOpal::ExceptionTranslation::registerExceptions
void registerExceptions()
Definition
ExceptionTranslation.cpp:23
PyOpal::Globals::Initialise
void Initialise()
Definition
Globals.cpp:50
PyOpal::PyOpalObjectNS::PREDEFINED_STRING
@ PREDEFINED_STRING
Definition
PyOpalObject.h:80
PyOpal::PyOpalObjectNS::DOUBLE
@ DOUBLE
Definition
PyOpalObject.h:81
PyOpal::PyOpalObjectNS::BOOL
@ BOOL
Definition
PyOpalObject.h:81
PyOpal::PyOptionNS::BOOST_PYTHON_MODULE
BOOST_PYTHON_MODULE(option)
Definition
PyOption.cpp:65
PyOpal::PyOpalObjectNS::PyOpalObject
Definition
PyOpalObject.h:138
PyOpal::PyOpalObjectNS::PyOpalObject::make_class
boost::python::class_< PyC > make_class(const char *className)
Definition
PyOpalObject.h:745
PyOpal::PyOpalObjectNS::PyOpalObject::addExecute
void addExecute(PYCLASS &pyclass)
Definition
PyOpalObject.h:761
Generated on Tue Apr 14 2026 07:18:46 for OPAL (Object Oriented Parallel Accelerator Library) by
1.9.8