PFASST++
poly_interp.hpp
Go to the documentation of this file.
1 #ifndef _PFASST_ENCAP_POLYINTERP_HPP_
2 #define _PFASST_ENCAP_POLYINTERP_HPP_
3 
4 #include <memory>
5 #include <vector>
6 using namespace std;
7 
8 #include "pfasst/interfaces.hpp"
10 
11 
12 namespace pfasst
13 {
14  namespace encap
15  {
19  template<typename time = time_precision>
21  : public pfasst::ITransfer<time>
22  {
23  protected:
25  typedef vector<shared_ptr<Encapsulation<time>>> EncapVecT;
29 
30  public:
32  virtual ~PolyInterpMixin();
34 
36  virtual void interpolate_initial(shared_ptr<ISweeper<time>> dst,
37  shared_ptr<const ISweeper<time>> src) override;
38  virtual void interpolate(shared_ptr<ISweeper<time>> dst,
39  shared_ptr<const ISweeper<time>> src,
40  bool interp_initial) override;
41  virtual void interpolate(shared_ptr<Encapsulation<time>> dst,
42  shared_ptr<const Encapsulation<time>> src);
44 
46  virtual void restrict_initial(shared_ptr<ISweeper<time>> dst,
47  shared_ptr<const ISweeper<time>> src) override;
48  virtual void restrict(shared_ptr<ISweeper<time>> dst,
49  shared_ptr<const ISweeper<time>> src,
50  bool restrict_initial) override;
51  virtual void restrict(shared_ptr<Encapsulation<time>> dst,
52  shared_ptr<const Encapsulation<time>> src);
54 
56  virtual void fas(time dt, shared_ptr<ISweeper<time>> dst,
57  shared_ptr<const ISweeper<time>> src) override;
59  };
60  } // ::pfasst::encap
61 } // ::pfasst
62 
64 
65 #endif
STL namespace.
Polynomial time interpolation mixin.
Definition: poly_interp.hpp:20
vector< shared_ptr< Encapsulation< time > > > EncapVecT
Definition: poly_interp.hpp:25
interfaces for SDC/MLSDC/PFASST algorithms.
Data/solution encapsulation.
Abstract time/space transfer (restrict/interpolate) class.
Definition: interfaces.hpp:295
Eigen::Matrix< scalar, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > Matrix
Abstract SDC sweeper.
Definition: interfaces.hpp:164
float dt
Definition: plot.py:10