#ifndef STATE_UPDATER_HH #define STATE_UPDATER_HH template <class ScalarVectorTEMPLATE, class Vector> class StateUpdater { public: using ScalarVector = ScalarVectorTEMPLATE; void virtual nextTimeStep() = 0; void virtual setup(double _tau) = 0; void virtual solve(Vector const &velocity_field) = 0; void virtual extractAlpha(ScalarVector &alpha) = 0; std::shared_ptr<StateUpdater<ScalarVector, Vector>> virtual clone() const = 0; }; #endif