Heuristic which takes into account the time to build a new Krylov vector compared to the time to build an entire new subspace. More...
#include <krylov_evolve.h>
Classes | |
struct | Element |
Element of the computational history. More... | |
Public Member Functions | |
GreedyHeuristic ()=default | |
Default ctor. More... | |
GreedyHeuristic (SRDef fac) | |
Adapt the growth factor. More... | |
![]() | |
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... | |
Protected Member Functions | |
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 | |
std::vector< std::vector< Element > > | data |
Computational history. More... | |
SRDef | factor = 1. |
assumed growth factor for cost of Krylov vectors More... | |
Additional Inherited Members | |
![]() | |
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... | |
Heuristic which takes into account the time to build a new Krylov vector compared to the time to build an entire new subspace.
Only checks the next step, not all steps potentially possible with the new Krylov vector.