Skip to content

Bindable Inverseoperator

Janick Gerstenberger requested to merge feature/bindable-inverseoperator into master

This branch introduces the possibility to construct inverse operators without a operator (and preconditioner) and bind a operator to it later. Additionally the branch adds a constructor to NewtonInverseOperator which moves its LinearInverseOperator.

TLDR:
  • adds bind(op) (resp.bind(op,prec)) and unbind() methods to inverse operators.
  • adds constructor without operator to inverse operators.
  • adds setMaxIterations(unsigned int/int) to inverse operators, additionally add setMaxLinearIterations(int) to NewtonInverseOperator.
  • adds test which covers inverse operators (see below for some caveats).
  • makes most solvers movable.
Done
  • NewtonInverseOperator [newtoninverseoperator.hh]

  • CGInverseOperator [cginverseoperator.hh]

  • ParDGGeneralizedMinResInverseOperator, ParDGBiCGStabInverseOperator [pardginverseoperator.hh]

  • ISTLLoopOp, ISTLCGOp, ISTLBICGSTABOp, ISTLMINResOp, ISTLGMResOp [istlsolver.hh]

  • ISTLInverseOperator [istlinverseoperator.hh]

  • EigenCGInverseOperator, EigenBiCGStabInverseOperator [eigen.hh]

  • PETSCInvereOperator [petscsolver.hh]

    untested

  • OEMCGOp, OEMBICGSTABOp, OEMBICGSQOp, OEMGMRESOp [oemsolver.hh]

    OEMGMRESOp is broken, see #51 (closed).

  • GMRESOp, FGMRESOp, BICGSTABOp [oemsolver.hh]

    FGMRESOp fails an assert when used without preconditioning.

depends on !120 (merged), !121 (merged)

Edited by Janick Gerstenberger

Merge request reports