OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
PyOpal
PyObjects
PyBeam.cpp
Go to the documentation of this file.
1
//
2
// Python API for Beam
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 "
Structure/Beam.h
"
22
23
namespace
PyOpal {
24
namespace
PyBeamNS {
25
26
// DOUBLE, STRING, BOOL, INT
27
template
<>
28
std::vector<PyOpalObjectNS::AttributeDef>
PyOpalObjectNS::PyOpalObject<Beam>::attributes
= {
29
{
"PARTICLE"
,
"particle"
,
""
,
PyOpalObjectNS::PREDEFINED_STRING
},
30
{
"MASS"
,
"mass"
,
""
,
PyOpalObjectNS::DOUBLE
},
31
{
"CHARGE"
,
"charge"
,
""
,
PyOpalObjectNS::DOUBLE
},
32
{
"ENERGY"
,
"energy"
,
""
,
PyOpalObjectNS::DOUBLE
},
33
{
"PC"
,
"momentum"
,
""
,
PyOpalObjectNS::DOUBLE
},
34
{
"GAMMA"
,
"gamma"
,
""
,
PyOpalObjectNS::DOUBLE
},
35
{
"BCURRENT"
,
"beam_current"
,
""
,
PyOpalObjectNS::DOUBLE
},
36
{
"BFREQ"
,
"beam_frequency"
,
""
,
PyOpalObjectNS::DOUBLE
},
37
{
"NPART"
,
"number_of_particles"
,
""
,
PyOpalObjectNS::DOUBLE
},
38
{
"MOMENTUMTOLERANCE"
,
"momentum_tolerance"
,
""
,
PyOpalObjectNS::DOUBLE
},
39
};
40
41
BOOST_PYTHON_MODULE
(beam) {
42
ExceptionTranslation::registerExceptions
();
43
PyOpal::Globals::Initialise
();
44
PyOpalObjectNS::PyOpalObject<Beam>
aBeam;
45
auto
beamClass = aBeam.
make_class
(
"Beam"
);
46
aBeam.
addRegister
(beamClass);
47
}
48
49
}
// PyBeamNS
50
}
// PyOpal
51
PyOpal::Globals::Initialise
void Initialise()
Definition:
Globals.cpp:50
ExceptionTranslation.h
PyOpal::ExceptionTranslation::registerExceptions
void registerExceptions()
Definition:
ExceptionTranslation.cpp:23
Globals.h
PyOpal::PyOpalObjectNS::PyOpalObject::addRegister
void addRegister(PYCLASS &pyclass)
Definition:
PyOpalObject.h:767
PyOpal::PyOpalObjectNS::PyOpalObject
Definition:
PyOpalObject.h:69
PyOpal::PyOpalObjectNS::PREDEFINED_STRING
Definition:
PyOpalObject.h:80
PyOpal::PyOpalObjectNS::DOUBLE
Definition:
PyOpalObject.h:81
PyOpal::PyOpalObjectNS::PyOpalObject::make_class
boost::python::class_< PyC > make_class(const char *className)
Definition:
PyOpalObject.h:745
PyOpal::PyBeamNS::BOOST_PYTHON_MODULE
BOOST_PYTHON_MODULE(beam)
Definition:
PyBeam.cpp:41
PyOpalObject.h
Beam.h
Generated on Tue Jul 2 2024 15:05:25 for OPAL (Object Oriented Parallel Accelerator Library) by
1.8.5