Skip to content
Snippets Groups Projects

Iterative solver cleanup

Merged Nils-Arne Dreier requested to merge nils.dreier/dune-istl:iterative_solver_cleanup into master
All threads resolved!

This MR removes duplicate code in iterative solvers by moving

  • convergence check
  • invalid defect norm check (inf or NaN)
  • output

to a class Iteration. A instance of this class is created with IterativeSolver::startIteration and is intended to be kept in the local scope of the apply method. During iteration the method Iteration::step checks for all the things mentioned above. The destructor fills all fields of InverseOperatorResult and prints the final statistics if verbose is positive.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Nils-Arne Dreier added 2 commits

    added 2 commits

    • 7a80d0a0 - set the solvername by a virtual function
    • 9bf611b8 - forbid copying of Iteration and define move ctor

    Compare with previous version

  • added 1 commit

    • 27930350 - remote startIteration method from IterativeSolver and create Iteration directly

    Compare with previous version

  • added 1 commit

    • 697abde5 - remove startIteration method from IterativeSolver and create Iteration directly

    Compare with previous version

  • Jö Fahlke resolved all discussions

    resolved all discussions

  • Jö Fahlke
  • Jö Fahlke
  • added 1 commit

    • 0af31d3a - change return type of `IterativeSolver::name()` to std::string

    Compare with previous version

  • Nils-Arne Dreier resolved all discussions

    resolved all discussions

  • added 1 commit

    • 24a802f1 - call Preconditioner::pre before computing the residuum, since pre might change

    Compare with previous version

  • @nils.dreier since dune-common!659 (merged) got merged a while ago, it would be nice to use className instead of all the explicit name() implementations.

    Besides this, I'd like to merge this soon...

  • Nils-Arne Dreier added 53 commits

    added 53 commits

    • 24a802f1...a5cbbad0 - 51 commits from branch core:master
    • a337dc31 - Merge remote-tracking branch 'origin/master' into iterative_solver_cleanup
    • 93340a73 - use className for determining the name of a IterativeSolver

    Compare with previous version

  • Nils-Arne Dreier added 6 commits

    added 6 commits

    Compare with previous version

  • mentioned in commit 6cc6544d

  • Nils-Arne Dreier mentioned in merge request !334 (merged)

    mentioned in merge request !334 (merged)

  • mentioned in commit 9e5267ef

  • Please register or sign in to reply
    Loading