1. 14 Dec, 2018 2 commits
    • Jö Fahlke's avatar
      [!262] [!221] [TLIME] Relax convergence criterion. · 9698e497
      Jö Fahlke authored
      Merge branch 'cherry-pick-9da2de98' into 'releases/2.6'
      
      ref:core/dune-istl Merge branch 'fix-tlime-residual-limit' into 'master'
      
      The previous convergence limit was originally determined experimentally as
      1e-11. This worked for many blas implementations and architectures. However,
      when used with openblas on skylake, apparently the residual norm would not go
      below ~1e-10, so convergence was never achieved. In fact, even on non-skylake
      the residual norm would go above 1e-11 again after briefly dipping below, if
      iterating further.
      
      We believe that this is due to openblas selecting \-- at runtime \-- some
      skylake specific algorithm leading to a different ordering of operations, in
      turn leading to differences in numerical cancellation. We have however not
      verified this conclusively, nor have we identified precisely which blas
      algorithm is causing this.
      
      This patch raises the convergence limit to
      sqrt(numeric_limits<field_type>::epsilon()). This limit has no theoretical
      justification \-- it was selected because it usually works as a convergence
      limit for other (completely unrelated) algorithms, and because it works for
      both Skylake and other architectures (AMD Epyc) in this particular case.
      
      Developed together with Sebastian Westerheide.
      
      Fixes: [#48].
      
      See merge request [!221]
      
      (cherry picked from commit 9da2de98)
      
      0bb1e69d \[TLIME\] Relax convergence criterion.
      
      Closes: [#61] (on 2.6).
      
      See merge request [!262]
      
        [#48]: gitlab.dune-project.org/NoneNone/issues/48
        [!221]: gitlab.dune-project.org/core/dune-istl/merge_requests/221
        [#61]: gitlab.dune-project.org/NoneNone/issues/61
        [!262]: gitlab.dune-project.org/core/dune-istl/merge_requests/262
      9698e497
    • Jö Fahlke's avatar
      [!221] [TLIME] Relax convergence criterion. · ae21be67
      Jö Fahlke authored
      Merge branch 'fix-tlime-residual-limit' into 'master'
      
      The previous convergence limit was originally determined experimentally as
      1e-11. This worked for many blas implementations and architectures. However,
      when used with openblas on skylake, apparently the residual norm would not go
      below ~1e-10, so convergence was never achieved. In fact, even on non-skylake
      the residual norm would go above 1e-11 again after briefly dipping below, if
      iterating further.
      
      We believe that this is due to openblas selecting -- at runtime -- some
      skylake specific algorithm leading to a different ordering of operations, in
      turn leading to differences in numerical cancellation. We have however not
      verified this conclusively, nor have we identified precisely which blas
      algorithm is causing this.
      
      This patch raises the convergence limit to
      `sqrt(numeric_limits<field_type>::epsilon())`. This limit has no theoretical
      justification -- it was selected because it usually works as a convergence
      limit for other (completely unrelated) algorithms, and because it works for
      both Skylake and other architectures (AMD Epyc) in this particular case.
      
      Developed together with Sebastian Westerheide.
      
      Fixes: \#48.
      
      
      See merge request !221
      
      (cherry picked from commit 9da2de98)
      
      0bb1e69d [TLIME] Relax convergence criterion.
      ae21be67
  2. 13 Dec, 2018 5 commits
  3. 10 Dec, 2018 1 commit
  4. 06 Dec, 2018 1 commit
  5. 27 Nov, 2018 1 commit
    • Martin Nolte's avatar
      [!242] [!241] MultiTypeBlockVector: Inherit tuple constructors · bb0fee97
      Martin Nolte authored
      Merge branch 'backport/feature/mtbv-inherit-tuple-constructors' into 'releases/2.6'
      
      ref:core/dune-istl Merge branch 'feature/mtbv-inherit-tuple-constructors' into
      'master'
      
      ref:core/dune-istl
      
      -   Makes member function count const
      -   Inherits tuple constructors so that MultiTypeBlockVector can be
          constructed from existing Vectors, or we can even construct it with
          references to existing vectors.
      -   Test construction from references in the test
      -   Fixes the static_assert in the test that shouldn't really have compiled
          before
      
      See merge request [[!241]]
      
      (cherry picked from commit 54ee6051)
      
      See merge request [!242]
      
        [!241]: gitlab.dune-project.org/core/dune-istl/merge_requests/241
        [!242]: gitlab.dune-project.org/core/dune-istl/merge_requests/242
      bb0fee97
  6. 23 Nov, 2018 1 commit
    • Oliver Sander's avatar
      [!241] MultiTypeBlockVector: Inherit tuple constructors · 448c0881
      Oliver Sander authored
      Merge branch 'feature/mtbv-inherit-tuple-constructors' into 'master'
      
      ref:core/dune-istl
      
      -   Makes member function count const
      -   Inherits tuple constructors so that MultiTypeBlockVector can be
          constructed from existing Vectors, or we can even construct it with
          references to existing vectors.
      -   Test construction from references in the test
      -   Fixes the static_assert in the test that shouldn't really have compiled
          before
      
      See merge request [!241]
      
        [!241]: gitlab.dune-project.org/core/dune-istl/merge_requests/241
      
      (cherry picked from commit 54ee6051)
      448c0881
  7. 17 Oct, 2018 2 commits
    • Markus Blatt's avatar
      [!232] [!230] [bugfix] Use submatrix index vector to implement O(1) look-up · ef68ae0e
      Markus Blatt authored
      Merge branch 'cherry-pick-0f4b78a9' into 'releases/2.6'
      
      ref:core/dune-istl Merge branch 'feature/fix-quadratic-umfpacksetup' into
      'master'
      
      ref:core/dune-istl Looking up if a column index is contained in submatrix
      could degenerate to accumulated O(n) complexity for each row in the old
      implementation. By setting up a look-up before, this can be improved to O(1).
      Fortunately such a vector is constructed anyway so we can simple use it after
      minor reordering of code.
      
      This should fix [[#54]].
      
      See merge request [[!230]]
      
      Closes [#54]
      
      (cherry picked from commit 0f4b78a9)
      
      22a5ae5f \[bugfix\] Use submatrix index vector to implement O(1) look-up
      
      See merge request [!232]
      
        [#54]: gitlab.dune-project.org/NoneNone/issues/54
        [!230]: gitlab.dune-project.org/core/dune-istl/merge_requests/230
        [!232]: gitlab.dune-project.org/core/dune-istl/merge_requests/232
      ef68ae0e
    • Markus Blatt's avatar
      [!230] [bugfix] Use submatrix index vector to implement O(1) look-up · a158111d
      Markus Blatt authored
      Merge branch 'feature/fix-quadratic-umfpacksetup' into 'master'
      
      ref:core/dune-istl Looking up if a column index is contained in submatrix
      could degenerate to accumulated O(n) complexity for each row in the old
      implementation. By setting up a look-up before, this can be improved to O(1).
      Fortunately such a vector is constructed anyway so we can simple use it after
      minor reordering of code.
      
      This should fix [#54].
      
      See merge request [!230]
      
        [#54]: gitlab.dune-project.org/NoneNone/issues/54
        [!230]: gitlab.dune-project.org/core/dune-istl/merge_requests/230
      
      
      Closes #54
      
      (cherry picked from commit 0f4b78a9)
      
      22a5ae5f [bugfix] Use submatrix index vector to implement O(1) look-up
      a158111d
  8. 03 Sep, 2018 1 commit
  9. 11 Jul, 2018 1 commit
  10. 28 Mar, 2018 1 commit
  11. 08 Mar, 2018 2 commits
  12. 23 Feb, 2018 3 commits
  13. 15 Feb, 2018 2 commits
  14. 14 Feb, 2018 1 commit
  15. 10 Feb, 2018 4 commits
  16. 08 Feb, 2018 2 commits
  17. 06 Feb, 2018 1 commit
  18. 30 Jan, 2018 1 commit
  19. 17 Jan, 2018 1 commit
  20. 16 Jan, 2018 1 commit
  21. 10 Jan, 2018 1 commit
  22. 02 Jan, 2018 1 commit
  23. 18 Dec, 2017 1 commit
  24. 14 Dec, 2017 2 commits
  25. 25 Nov, 2017 1 commit