#ifndef DUNE_TECTONIC_STATE_HH #define DUNE_TECTONIC_STATE_HH #include <dune/common/bitsetvector.hh> #include "enums.hh" #include "state/stateupdater.hh" #include "state/ruinastateupdater.hh" #include "state/dieterichstateupdater.hh" template <class ScalarVector, class Vector> std::shared_ptr<StateUpdater<ScalarVector, Vector>> initStateUpdater( Config::stateModel model, ScalarVector const &alpha_initial, Dune::BitSetVector<1> const &frictionalNodes, double L) { switch (model) { case Config::Dieterich: return std::make_shared<DieterichStateUpdater<ScalarVector, Vector>>( alpha_initial, frictionalNodes, L); case Config::Ruina: return std::make_shared<RuinaStateUpdater<ScalarVector, Vector>>( alpha_initial, frictionalNodes, L); default: assert(false); } } #endif