5 #ifndef _PFASST__CONTROLLER__PFASST_HPP_
6 #define _PFASST__CONTROLLER__PFASST_HPP_
18 template<
typename time = pfasst::time_precision>
35 virtual void run()
override;
47 LevelIter
cycle_up(LevelIter level_iter);
57 LevelIter
cycle_v(LevelIter level_iter);
82 virtual int tag(LevelIter level_iter);
83 virtual int stag(LevelIter level_iter);
103 #endif // _PFASST__CONTROLLER__PFASST_HPP_
pfasst::Controller< time >::LevelIter LevelIter
virtual void broadcast()
Broadcast finest level to all processes of PFASST::comm.
LevelIter cycle_v(LevelIter level_iter)
Perform an MLSDC V-cycle.
void perform_sweeps(size_t level)
Level (MLSDC/PFASST) iterator.
Implementation of the PFASST algorithm as described in .
LevelIter cycle_up(LevelIter level_iter)
Interpolate coarse correction to fine, sweep on current (fine).
virtual void predictor()
Predictor: restrict initial down, preform coarse sweeps, return to finest.
virtual void post()
Post current status and values to next processor.
Multilevel SDC controller.
LevelIter cycle_down(LevelIter level_iter)
Sweep on current (fine), restrict to coarse.
virtual int stag(LevelIter level_iter)
virtual void set_comm(ICommunicator *comm)
Set communicator.
virtual int tag(LevelIter level_iter)
Generate a unique tag for level iterator.
Abstract interface for communicators.
LevelIter cycle_bottom(LevelIter level_iter)
Sweep on the current (coarsest) level.
bool predict
whether to use a predict sweep
virtual void run() override
Solve ODE using PFASST.
ICommunicator * comm
communicator to use