Skip to content

WIP: Smooth potential

lh1887 requested to merge feature/smoothfunctional into feature/new_tnnmg

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 like std::functions 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.

Merge request reports