|
OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
|
#include <SplineTimeDependence.h>


Public Member Functions | |
| SplineTimeDependence (size_t splineOrder, std::vector< double > times, std::vector< double > values) | |
| SplineTimeDependence (const SplineTimeDependence &rhs) | |
| SplineTimeDependence () | |
| ~SplineTimeDependence () | |
| double | getValue (double time) |
| SplineTimeDependence * | clone () |
| Inform & | print (Inform &os) |
| void | setSpline (size_t splineOrder, std::vector< double > times, std::vector< double > values) |
Public Member Functions inherited from AbstractTimeDependence | |
| virtual | ~AbstractTimeDependence () |
Private Attributes | |
| gsl_spline * | spline_m |
| gsl_interp_accel * | acc_m |
| size_t | splineOrder_m |
| std::vector< double > | times_m |
| std::vector< double > | values_m |
Additional Inherited Members | |
Static Public Member Functions inherited from AbstractTimeDependence | |
| static std::shared_ptr < AbstractTimeDependence > | getTimeDependence (std::string name) |
| static void | setTimeDependence (std::string name, std::shared_ptr< AbstractTimeDependence > time_dep) |
| static std::string | getName (std::shared_ptr< AbstractTimeDependence > time_dep) |
Time dependence that follows a spline. Interpolation is supported at linear or cubic order..
Interpolation is done using gsl_spline routines (1st or 3rd order).
Nb: I tried to use PolynomialPatch, as it is arbitrary order interpolation, but it turns out that only works for regular grids.
Definition at line 50 of file SplineTimeDependence.h.
| SplineTimeDependence::SplineTimeDependence | ( | size_t | splineOrder, |
| std::vector< double > | times, | ||
| std::vector< double > | values | ||
| ) |
Constructor
| splineOrder | the order of the spline used to fit the time dependence; either 1 (linear interpolation) or 3 (cubic spline with quadratic smoothing) |
| times | the times of successive elements in the time dependence |
| values | the values at each time step. |
It is an error if times and values are not of equal length, times and values length < splineOrder + 1, or times do not increase strictly monotonically.
Definition at line 36 of file SplineTimeDependence.cpp.
References setSpline().

| SplineTimeDependence::SplineTimeDependence | ( | const SplineTimeDependence & | rhs | ) |
Copy Constructor
Definition at line 43 of file SplineTimeDependence.cpp.
References setSpline(), splineOrder_m, times_m, and values_m.

| SplineTimeDependence::SplineTimeDependence | ( | ) |
Default Constructor makes a dependence of length 2 with values 0
Definition at line 48 of file SplineTimeDependence.cpp.
Referenced by clone().
| SplineTimeDependence::~SplineTimeDependence | ( | ) |
Destructor does nothing
Definition at line 51 of file SplineTimeDependence.cpp.
|
virtual |
Inheritable copy constructor
Implements AbstractTimeDependence.
Definition at line 60 of file SplineTimeDependence.cpp.
References setSpline(), splineOrder_m, SplineTimeDependence(), times_m, and values_m.

|
inlinevirtual |
Return the value of the spline at a given time
| time,: | time at which the spline is referenced. If time is off either end of the spline, the last few values are used to extrapolate past the end of the spline. |
Implements AbstractTimeDependence.
Definition at line 119 of file SplineTimeDependence.h.
Print summary information about the time dependence
| os | "Inform" stream to which the information is printed. |
Definition at line 66 of file SplineTimeDependence.cpp.
References endl(), spline_m, splineOrder_m, and times_m.
Referenced by operator<<().

| void SplineTimeDependence::setSpline | ( | size_t | splineOrder, |
| std::vector< double > | times, | ||
| std::vector< double > | values | ||
| ) |
Set the spline, deleting any existing spline data
Definition at line 76 of file SplineTimeDependence.cpp.
References acc_m, and(), spline_m, times_m, and values_m.
Referenced by clone(), and SplineTimeDependence().

|
private |
Definition at line 106 of file SplineTimeDependence.h.
Referenced by getValue(), setSpline(), and ~SplineTimeDependence().
|
private |
Definition at line 105 of file SplineTimeDependence.h.
Referenced by getValue(), print(), setSpline(), and ~SplineTimeDependence().
|
private |
Definition at line 107 of file SplineTimeDependence.h.
Referenced by clone(), print(), and SplineTimeDependence().
|
private |
Definition at line 108 of file SplineTimeDependence.h.
Referenced by clone(), getValue(), print(), setSpline(), and SplineTimeDependence().
|
private |
Definition at line 109 of file SplineTimeDependence.h.
Referenced by clone(), setSpline(), and SplineTimeDependence().
1.8.5