@@ -26,7 +26,8 @@ namespace pfasst
2626 deque<shared_ptr<ISweeper<time>>> levels;
2727 deque<shared_ptr<ITransfer<time>>> transfer;
2828
29- time dt;
29+ int step, iteration, max_iterations;
30+ time t, dt, tend;
3031
3132 public:
3233 // ! @{
@@ -38,11 +39,15 @@ namespace pfasst
3839 }
3940 }
4041
41- void set_duration (time dt, size_t nsteps, size_t niters)
42+ // XXX
43+ void set_duration (time t0, time tend, time dt, int niters)
4244 {
45+ this ->t = t0;
46+ this ->tend = tend;
4347 this ->dt = dt;
44- steps.set_size (nsteps);
45- iterations.set_size (niters);
48+ this ->step = 0 ;
49+ this ->iteration = 0 ;
50+ this ->max_iterations = niters;
4651 }
4752
4853 void add_level (shared_ptr<ISweeper<time>> swpr,
@@ -176,36 +181,52 @@ namespace pfasst
176181
177182
178183 /* *
179- * Simple range iterator .
184+ * Get current time step number .
180185 */
181- class RangeIter {
182- friend Controller;
183- size_t i, n;
184- public:
185- void set_size (size_t n) { this ->n = n; }
186- void reset (size_t i = 0 ) { this ->i = i; }
187- bool valid () { return i < n; }
188- void next () { i++; }
189- } steps, iterations;
190-
191- size_t get_step ()
186+ int get_step ()
192187 {
193- return steps. i ;
188+ return step ;
194189 }
195190
196- size_t get_iteration ()
191+ time get_time_step ()
197192 {
198- return iterations. i ;
193+ return dt ;
199194 }
200195
201196 time get_time ()
202197 {
203- return get_step () * get_time_step () ;
198+ return t ;
204199 }
205200
206- time get_time_step ( )
201+ void advance_time ( int nsteps= 1 )
207202 {
208- return dt;
203+ step += nsteps;
204+ t += nsteps*dt;
205+ }
206+
207+ time get_end_time ()
208+ {
209+ return tend;
210+ }
211+
212+ int get_iteration ()
213+ {
214+ return iteration;
215+ }
216+
217+ void set_iteration (int iter)
218+ {
219+ this ->iteration = iter;
220+ }
221+
222+ void advance_iteration ()
223+ {
224+ iteration++;
225+ }
226+
227+ int get_max_iteration ()
228+ {
229+ return max_iterations;
209230 }
210231
211232 };
0 commit comments