#1705 Supplement ISTL with eigenvalue algorithms (condition number of BCRSMatrices)
Metadata
Property | Value |
---|---|
Reported by | Sebastian Westerheide (sebastian.westerheide@uni-muenster.de) |
Reported at | Aug 3, 2015 01:33 |
Type | Feature Request |
Version | Git (pre2.4) [cmake] |
Operating System | Unspecified / All |
Last edited by | Christian Engwer (christi@conan.iwr.uni-heidelberg.de) |
Last edited at | Aug 17, 2015 20:35 |
Closed by | Christian Engwer (christi@conan.iwr.uni-heidelberg.de) |
Closed at | Aug 17, 2015 20:35 |
Closed in version | Unknown |
Resolution | Implemented |
Comment | cleaned up the patches and merged to master |
Description
It would be beneficial for ISTL to have built-in mechanisms for computing the condition number of BCRSMatrices.
Please find attached a patch for the current DUNE-ISTL master which provides a first version of eigenvalue algorithms that can be used to compute the spectral (i.e. 2-norm) condition number of BCRSMatrices. It contains one class templates for performing some iterative eigenvalue algorithms based on power iteration which can be used together with the ISTL solvers. Furthermore it provides one class template for performing eigenvalue algorithms provided by the ARPACK++ library [1] which don't require matrix inversion. Test programs illustrate how to use the class templates to compute the spectral condition number of a BCRSMatrix.
Note that this first implementation is limited to BCRSMatrix types with blocklevel 2.
Furthermore, note that the latest version of the ARPACK++ library available at [1] is ARPACK++ version 1.2, Feb 20, 2000. Your compiler will probably complain about several things. A recent version of the ARPACK++ library working with recent compiler versions can be found at [2] or in the git repository [3].
Finally, ARPACK++ based code will only run using the new CMake build system, since I restricted myself to writing a CMake module which searches for ARPACK++ and its dependencies.
Best, Sebastian
[1] http://www.caam.rice.edu/software/ARPACK/ [2] http://reuter.mit.edu/software/arpackpatch/ [3] https://github.com/m-reuter/arpackpp.git