The ExtrapolatingHeuristic class tries to extrapolate the number of timesteps that can be taken with one more Krylov vector and the runtime for adding this vector, and compares both to building a new Krylov space from scratch. More...
#include <krylov_evolve.h>
Private Member Functions | |
virtual bool | do_recycle (Conf const &conf) const override |
override More... | |
Private Attributes | |
bool | previousExtensionWasBeneficial = true |
Previous return value. More... | |
Additional Inherited Members | |
Public Member Functions inherited from syten::Krylov::Evolution::GreedyHeuristic< Solver, Clock > | |
GreedyHeuristic ()=default | |
Default ctor. More... | |
GreedyHeuristic (SRDef fac) | |
Adapt the growth factor. More... | |
Public Member Functions inherited from syten::Krylov::Evolution::Evolver< Solver > | |
template<typename... WrapUpParams> | |
void | do_step (Solver &k, typename Solver::Vector_type &s, Conf &conf, std::string const &suffix, WrapUpParams &&... params) |
Does one step if the subspace can be recycled does not discard it(hopefully) More... | |
template<typename... WrapUpParams> | |
void | evolve (Solver k, typename Solver::Vector_type &s, Conf &conf, std::string const &suffix, WrapUpParams &&... params) |
Builds one Krylov space and evolves within that space as far as possible, recycling it if necessary. More... | |
virtual void | init_evolve (Conf &) |
Hook to initialise the evolution process for subclasses. More... | |
template<typename... WrapUpParams> | |
void | loop_evolve (typename Solver::Matrix_type o, typename Solver::Vector_type &v, Conf &conf, std::string const &suffix, WrapUpParams &&... params) |
Constructs the solver and evolves until the target time is reached. More... | |
virtual IterativeExit | virt_continue_evolution (Solver &k, typename Solver::Vector_type &s, Conf &conf, SDef dt) |
Hook for the continued actual evolution, calling out to the external functions by default. More... | |
virtual IterativeExit | virt_evolve (Solver &k, typename Solver::Vector_type &s, Conf &conf, SDef dt) |
Hook for the actual evolution, calling out to the external functions by default. More... | |
virtual | ~Evolver () |
Virtual dtor to allow proper destruction. More... | |
Public Attributes inherited from syten::Krylov::Evolution::Evolver< Solver > | |
Index | count {} |
number of steps taken More... | |
DenseTensor< 2, SDef > | current_Heff |
Current krylov vectors. More... | |
Vec< typename Solver::Vector_type > | current_krylov_vectors |
Current krylov vectors. More... | |
Protected Member Functions inherited from syten::Krylov::Evolution::GreedyHeuristic< Solver, Clock > | |
virtual bool | do_recycle (Conf const &conf) const override |
override More... | |
virtual void | init_evolve (Conf &) override |
override: We need to place a new time holder in data. More... | |
virtual IterativeExit | virt_continue_evolution (Solver &k, typename Solver::Vector_type &s, Conf &conf, SDef dt) override |
override More... | |
virtual IterativeExit | virt_evolve (Solver &k, typename Solver::Vector_type &s, Conf &conf, SDef dt) override |
override More... | |
Protected Attributes inherited from syten::Krylov::Evolution::GreedyHeuristic< Solver, Clock > | |
std::vector< std::vector< Element > > | data |
Computational history. More... | |
SRDef | factor = 1. |
assumed growth factor for cost of Krylov vectors More... | |
The ExtrapolatingHeuristic class tries to extrapolate the number of timesteps that can be taken with one more Krylov vector and the runtime for adding this vector, and compares both to building a new Krylov space from scratch.