SyTen
syten::Krylov::Evolution::Evolver< Solver > Struct Template Reference

Base class from which different heuristics inherit. More...

#include <krylov_evolve.h>

+ Inheritance diagram for syten::Krylov::Evolution::Evolver< Solver >:
+ Collaboration diagram for syten::Krylov::Evolution::Evolver< Solver >:

Public Member Functions

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

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

Private Member Functions

virtual bool do_recycle (Conf const &) const
 Return true if you wish to recycle here. More...
 
bool finalizeStep (typename Solver::Vector_type &s, Conf &conf, std::string const &filename) const
 Normalise and save if necessary, returning true if normalised. More...
 
void trim_dt (Conf &conf) const
 If the difference between the current and target time is less than dt, dt is changed to that difference or zero if that difference is smaller than 0.001 times the current dt. More...
 
template<typename... WrapUpParams>
void wrapupstep (Solver &k, typename Solver::Vector_type &s, Conf &conf, IterativeExit const &r, std::string const &suffix, bool exploitedSpace, SDef toffset, WrapUpParams &&... params)
 Complete the current step and output data. More...
 

Detailed Description

template<typename Solver>
struct syten::Krylov::Evolution::Evolver< Solver >

Base class from which different heuristics inherit.

Different heuristics then primarily override do_recycle() and, if necessary, evolve() and continue_evolution() to include additional steps.


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