WIP: Smooth potential
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 ( PHI
,PHIPRIME
,PHI2PRIME
) is ugly. Maybe one wants something likestd::function
s instead, -
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.