You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
771 B
28 lines
771 B
3 years ago
|
#ifndef TIMEINTEGRATOR_CLASSICAL_RK_HPP
|
||
|
#define TIMEINTEGRATOR_CLASSICAL_RK_HPP
|
||
|
|
||
|
#include "../util/setup.hpp"
|
||
|
|
||
|
namespace timeIntegrator
|
||
|
{
|
||
|
template<typename VEC>
|
||
|
class ClassicalRKsolver : public TimeIntegrator<VEC>
|
||
|
{
|
||
|
public:
|
||
|
using Base = TimeIntegrator<VEC>;
|
||
|
using Func = std::function<VEC(VEC,Real)>;
|
||
|
|
||
|
ClassicalRKsolver() = default;
|
||
|
ClassicalRKsolver(const ClassicalRKsolver &) = delete;
|
||
|
ClassicalRKsolver& operator=(const ClassicalRKsolver &) = delete;
|
||
|
~ClassicalRKsolver() = default;
|
||
|
|
||
|
virtual VEC solve(const VEC &U0, Func f, Real T, int steps) const;
|
||
|
virtual VEC solve(const VEC &U0, Func f, Real step_size) const;
|
||
|
};
|
||
|
|
||
|
} // namespace timeIntegrator
|
||
|
|
||
|
#include "ClassicalRK.inl"
|
||
|
|
||
|
#endif
|