Closed torbjoernk closed 9 years ago
It really looks like run-time dynamism has been sacrificed here. We had a thread about that a long time ago when discussing templates and traits. I'm not sure why you've restricted yourself to two levels either... what was wrong with the general V-cycle version?
Also, it's not clear to me how this addresses "unreliable behaviour on large runs". What was the problem and how does your code fix it?
I'd much rather see smaller incremental changes than a huge PR like this. What are things about PFASST++ that really bugged you? Let's discuss and tackle them individually.
Also keep in mind that one goal that was stated early on was the need for run-time dynamism. For example, we want to be able to add/remove levels as the code is running; we want to be able change transfer operators, etc etc. Also keep in mind that there are ACTUALLY codes out there that do these kinds of things already!
I'll keep that in my own fork. Further details via mail.
This is a complete rewrite of PFASST++.
The main reasons for this effort are:
dynamic_pointer_cast
as a result of unnecessary dynamic polymorphismBoth things bugged be a lot and I sat down to redesign the whole library from scratch. That was not possible without using a few more template expressions.
The current state of the rewritten library is almost where we were with v0.5.0.
A few ToDos will be tackled in the near future:
Thanks to @f-koehler for dealing with some nasty CMake stuff.