-
- Downloads
Merge branch 'feature/abort-on-invalid-defect' into 'master'
Abort CGSolver when the defect is invalid The first commit introduces the exception `SolverAbort`, derived from `ISTLError`. The second commit makes `CGSolver` abort by throwing `SolverAbort` when the defect becomes invalid (infinite or NaN). The check is done in every iteration before the convergence check. These two commits fix #12. The third and fourth commit make `BiCGStab` and `GMRes` throw `SolverAbort` when they detect a breakdown. `SolverAbort` seemed more specific when the `ISTLError` they were throwing before. The fifth commit documents when `SolverAbort` is thrown at the moment. The sixth commit adds a unit tests that tries to trigger `SolverAbort` and makes sure that it is actually thrown. It does this for the NaN-check in `CGSolver` and for the "abs(h) < EPSILON"-check in `BiCGSTABSolver` -- there a more conditions in `BiCGSTABSolver` and `RestartedGMResSolver` that throw, but I don't know how to trigger them. See merge request !36
Showing
- dune/istl/istlexception.hh 9 additions, 0 deletionsdune/istl/istlexception.hh
- dune/istl/solver.hh 6 additions, 0 deletionsdune/istl/solver.hh
- dune/istl/solvers.hh 53 additions, 5 deletionsdune/istl/solvers.hh
- dune/istl/test/CMakeLists.txt 3 additions, 0 deletionsdune/istl/test/CMakeLists.txt
- dune/istl/test/solveraborttest.cc 113 additions, 0 deletionsdune/istl/test/solveraborttest.cc
Loading
Please register or sign in to comment