Skip to content

Commit c2b426f

Browse files
committed
controller: get_finest & get_coarsest
new handy accessor methods for the finest and coarses level hold by a controller
1 parent f00fc99 commit c2b426f

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

examples/advection_diffusion/serial_mlsdc.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ int main(int argc, char** argv)
6363
/*
6464
* set initial conditions on each level
6565
*/
66-
auto sweeper = mlsdc.finest().operator-><AdvectionDiffusionSweeper<>>();
66+
auto sweeper = mlsdc.get_finest<AdvectionDiffusionSweeper<>>();
6767
auto q0 = sweeper->get_state(0);
6868
sweeper->exact(q0, 0.0);
6969

include/pfasst/controller.hpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,22 @@ namespace pfasst
6868
return r;
6969
}
7070

71+
template<typename R = ISweeper<time>>
72+
shared_ptr<R> get_finest()
73+
{
74+
shared_ptr<R> r = dynamic_pointer_cast<R>(levels.back());
75+
assert(r);
76+
return r;
77+
}
78+
79+
template<typename R = ISweeper<time>>
80+
shared_ptr<R> get_coarsest()
81+
{
82+
shared_ptr<R> r = dynamic_pointer_cast<R>(levels.front());
83+
assert(r);
84+
return r;
85+
}
86+
7187
template<typename R = ITransfer<time>>
7288
shared_ptr<R> get_transfer(size_t level)
7389
{

0 commit comments

Comments
 (0)