FunctionOfTime.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <array>
7 #include <vector>
8 
9 #include "DataStructures/DataVector.hpp"
10 
11 /// \ingroup ControlSystemGroup
12 /// Base class for FunctionsOfTime
14  public:
15  FunctionOfTime() = default;
16  FunctionOfTime(FunctionOfTime&&) noexcept = default;
17  FunctionOfTime& operator=(FunctionOfTime&&) noexcept = default;
18  FunctionOfTime(const FunctionOfTime&) = delete;
19  FunctionOfTime& operator=(const FunctionOfTime&) = delete;
20  virtual ~FunctionOfTime() = default;
21 
22  virtual std::array<double, 2> time_bounds() const noexcept = 0;
23 
24  virtual std::array<DataVector, 1> func(double t) const noexcept = 0;
25  virtual std::array<DataVector, 2> func_and_deriv(double t) const noexcept = 0;
26  virtual std::array<DataVector, 3> func_and_2_derivs(double t) const
27  noexcept = 0;
28 };
Base class for FunctionsOfTime.
Definition: FunctionOfTime.hpp:13