SyTen
syten::Krylov::Evolution::GreedyHeuristic< Solver, Clock > Class Template Reference

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>

+ Inheritance diagram for syten::Krylov::Evolution::GreedyHeuristic< Solver, Clock >:
+ Collaboration diagram for syten::Krylov::Evolution::GreedyHeuristic< Solver, Clock >:

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...
 
- 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...
 

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

- Public Attributes inherited from syten::Krylov::Evolution::Evolver< Solver >
Index count {}
 number of steps taken More...
 
DenseTensor< 2, SDefcurrent_Heff
 Current krylov vectors. More...
 
Vec< typename Solver::Vector_type > current_krylov_vectors
 Current krylov vectors. More...
 

Detailed Description

template<typename Solver, typename Clock = std::chrono::steady_clock>
class syten::Krylov::Evolution::GreedyHeuristic< Solver, Clock >

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.


The documentation for this class was generated from the following file: