#ifndef SRC_TIME_STEPPING_STATE_AGEINGLAWSTATEUPDATER_HH #define SRC_TIME_STEPPING_STATE_AGEINGLAWSTATEUPDATER_HH #include "stateupdater.hh" template <class ScalarVector, class Vector> class AgeingLawStateUpdater : public StateUpdater<ScalarVector, Vector> { public: AgeingLawStateUpdater(const std::vector<ScalarVector>& _alpha_initial, const std::vector<Dune::BitSetVector<1>>& _nodes, const std::vector<double>& _L, const std::vector<double>& _V0); void nextTimeStep() override; void setup(double _tau) override; void solve(const std::vector<Vector>& velocity_field) override; void extractAlpha(std::vector<ScalarVector> &) override; std::shared_ptr<StateUpdater<ScalarVector, Vector>> clone() const override; private: std::vector<ScalarVector> alpha_o; std::vector<ScalarVector> alpha; const std::vector<Dune::BitSetVector<1>>& nodes; const std::vector<double>& L; const std::vector<double>& V0; double tau; }; #endif