7 #ifndef _PFASST_INTERFACES_HPP_
8 #define _PFASST_INTERFACES_HPP_
30 :
public runtime_error
37 virtual const char* what()
const throw();
51 :
public invalid_argument
55 virtual const char* what()
const throw();
74 virtual int size() = 0;
75 virtual int rank() = 0;
90 static const int NOT_CONVERGED = 0;
91 static const int CONVERGED = 1;
105 virtual void clear() = 0;
110 virtual void set_converged(
bool converged) = 0;
120 virtual bool get_converged(
int rank) = 0;
134 virtual bool previous_is_iterating();
142 virtual bool keep_iterating();
146 virtual void post(
int tag) = 0;
147 virtual void send(
int tag) = 0;
148 virtual void recv(
int tag) = 0;
154 template<
typename time>
163 template<
typename time = time_precision>
198 virtual void set_options();
206 virtual void setup(
bool coarse =
false);
219 virtual void predict(
bool initial) = 0;
228 virtual void sweep() = 0;
236 virtual void advance() = 0;
243 virtual bool converged();
255 virtual void save(
bool initial_only=
false);
260 virtual void spread();
267 virtual void post_sweep();
272 virtual void post_predict();
277 virtual void post_step();
282 virtual void send(
ICommunicator* comm,
int tag,
bool blocking);
283 virtual void recv(
ICommunicator* comm,
int tag,
bool blocking);
294 template<
typename time = time_precision>
322 bool interp_initial =
false) = 0;
345 bool restrict_initial =
false) = 0;
void setup(shared_ptr< WrapperInterface< scalar, time >> wrapper)
Not implemented yet exception.
Base SDC/MLSDC/PFASST controller.
Controller< time > * controller
Backreference to the controller managing the sweeper instance.
Abstract interface for the current status of the algorithm.
Abstract time/space transfer (restrict/interpolate) class.
Abstract interface for communicators.
shared_ptr< IStatus > status