This is for minimizing problems with the typical TNNMG structure, i.e.
J(v) = 0.5 <Av,v> - <b,v> + \sum_i phi(v_i)
but with phi being a smooth function at this point. Basically, you should end up with a preconditioned and damped Newton step.
This implementation has still some issues, which are (at least):
Having so many template parameters (
PHI2PRIME) is ugly. Maybe one wants something like
much of the code is based on non-smooth implementations, hence there are still some artefacts that are not really needed for the smooth case,
the bisection local solver doesn't let you control all parameters the bisection offers,
near the solution, the solver shows some oscillating behaviour, this is most likely a bug (to see this, set the tolerance in the LoopSolver to a smaller number),
some TODO s which are marked as such in the code,
and, finally, the whole code needs more documentation.
I'd be glad to get any kind of remarks, bugfixes, clean-ups etc.