PFASST++
sdc_impl.hpp
Go to the documentation of this file.
2 
3 
4 namespace pfasst
5 {
21  template<typename time>
23  {
24  auto sweeper = this->get_level(0);
25 
26  for (; this->get_time() < this->get_end_time(); this->advance_time()) {
27  bool initial = this->get_step() == 0;
28  for (this->set_iteration(0);
29  this->get_iteration() < this->get_max_iterations();
30  this->advance_iteration()) {
31  bool predict = this->get_iteration() == 0;
32  if (predict) {
33  sweeper->predict(initial);
34  sweeper->post_predict();
35  } else {
36  sweeper->sweep();
37  sweeper->post_sweep();
38  }
39  if (sweeper->converged()) {
40  break;
41  }
42  }
43  sweeper->post_step();
44  if (this->get_time() + this->get_step_size() < this->get_end_time()) {
45  sweeper->advance();
46  }
47  }
48  }
49 } // ::pfasst
virtual void run()
Run vanilla SDC.
Definition: sdc_impl.hpp:22