NLESC-JCER / spectra

A header-only C++ library for large scale eigenvalue problems
https://spectralib.org
Mozilla Public License 2.0
0 stars 0 forks source link

Implement Testcases for Davidson #8

Open JensWehner opened 4 years ago

JensWehner commented 4 years ago

Within the Catch2 framework we need small testcases for the Symmetric Davidson case.

They have to cover the following aspects:

datatypes: float, double, std::complex, std::complex selection rules: min and max

and the following error conditions: number of iterations exceeded without convergence, input of the already diagonlized matrix, some sort of numerically unstable problem(degeneracy)

and validation of input parameters: too large searchspace too many eigenvalues requested.

it has to cover restarts/deflation

reference values can be obtained from the Eigen solvers for dense matrices.

one test case should include a user defined matrixproduct.

v1kko commented 4 years ago

We can use TEMPLATE_TEST_CASE (or even fancier, depending on catch2 version) to quickly enable support for various types in our tests : https://github.com/catchorg/Catch2/blob/master/docs/test-cases-and-sections.md#type-parametrised-test-cases