PFASST++
pfasst.hpp
Go to the documentation of this file.
1 
5 #ifndef _PFASST__CONTROLLER__PFASST_HPP_
6 #define _PFASST__CONTROLLER__PFASST_HPP_
7 
9 
10 
11 namespace pfasst
12 {
18  template<typename time = pfasst::time_precision>
19  class PFASST
20  : public MLSDC<time>
21  {
23 
25  bool predict;
26 
27  void perform_sweeps(size_t level);
28 
29  public:
35  virtual void run() override;
36 
37  private:
39 
42  LevelIter cycle_down(LevelIter level_iter);
43 
47  LevelIter cycle_up(LevelIter level_iter);
48 
52  LevelIter cycle_bottom(LevelIter level_iter);
53 
57  LevelIter cycle_v(LevelIter level_iter);
58 
62  virtual void predictor();
64 
75  virtual void broadcast();
76 
82  virtual int tag(LevelIter level_iter);
83  virtual int stag(LevelIter level_iter);
84 
88  virtual void post();
89 
90  public:
96  virtual void set_comm(ICommunicator* comm);
98  };
99 } // ::pfasst
100 
102 
103 #endif // _PFASST__CONTROLLER__PFASST_HPP_
pfasst::Controller< time >::LevelIter LevelIter
Definition: pfasst.hpp:22
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)
Definition: pfasst_impl.hpp:9
Level (MLSDC/PFASST) iterator.
Definition: interface.hpp:306
Implementation of the PFASST algorithm as described in .
Definition: pfasst.hpp:19
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.
Definition: mlsdc.hpp:24
LevelIter cycle_down(LevelIter level_iter)
Sweep on current (fine), restrict to coarse.
Definition: pfasst_impl.hpp:92
virtual int stag(LevelIter level_iter)
virtual void set_comm(ICommunicator *comm)
Set communicator.
Definition: pfasst_impl.hpp:30
virtual int tag(LevelIter level_iter)
Generate a unique tag for level iterator.
Abstract interface for communicators.
Definition: interfaces.hpp:70
LevelIter cycle_bottom(LevelIter level_iter)
Sweep on the current (coarsest) level.
bool predict
whether to use a predict sweep
Definition: pfasst.hpp:25
virtual void run() override
Solve ODE using PFASST.
Definition: pfasst_impl.hpp:40
ICommunicator * comm
communicator to use
Definition: pfasst.hpp:24