OPAL (Object Oriented Parallel Accelerator Library)
2024.2
OPAL
PyAbstractTimeDependence.h
Go to the documentation of this file.
1
#ifndef PYELEMENTS_PYABSTRACTTIMEDEPENDENCE_H
2
#define PYELEMENTS_PYABSTRACTTIMEDEPENDENCE_H
3
4
#include "
PyOpal/PyCore/PyOpalObject.h
"
5
#include "
Classic/Algorithms/AbstractTimeDependence.h
"
6
7
namespace
PyOpal
{
8
namespace
PyAbstractTimeDependence
{
9
10
std::string
functionDocstring
=
11
"Update the TimeDependence and then calculate the value at a give time\n"
12
"- t [float]: time at which to evaluate the function\n"
13
"Returns the function value.\n"
;
14
15
template
<
class
C>
16
double
function
(
PyOpalObjectNS::PyOpalObject<C>
pyobject,
double
t) {
17
std::shared_ptr<C> objectPtr = pyobject.
getOpalShared
();
18
objectPtr->update();
19
std::string
name
= objectPtr->getOpalName();
20
std::shared_ptr<AbstractTimeDependence> model =
21
AbstractTimeDependence::getTimeDependence
(
name
);
22
double
value = model->getValue(t);
23
return
value;
24
}
25
26
}
27
}
28
29
#endif
// PYELEMENTS_PYABSTRACTTIMEDEPENDENCE_H
PyOpalObject.h
AbstractTimeDependence.h
name
const std::string name
Definition
MaxNormRadialPeak.cpp:32
PyOpal
Definition
ExceptionTranslation.cpp:21
PyOpal::PyAbstractTimeDependence
Definition
PyAbstractTimeDependence.h:8
PyOpal::PyAbstractTimeDependence::functionDocstring
std::string functionDocstring
Definition
PyAbstractTimeDependence.h:10
PyOpal::PyAbstractTimeDependence::function
double function(PyOpalObjectNS::PyOpalObject< C > pyobject, double t)
Definition
PyAbstractTimeDependence.h:16
AbstractTimeDependence::getTimeDependence
static std::shared_ptr< AbstractTimeDependence > getTimeDependence(std::string name)
Definition
AbstractTimeDependence.cpp:36
PyOpal::PyOpalObjectNS::PyOpalObject
Definition
PyOpalObject.h:138
PyOpal::PyOpalObjectNS::PyOpalObject::getOpalShared
std::shared_ptr< C > getOpalShared()
Definition
PyOpalObject.h:286