1. 27 Jul, 2017 1 commit
2. 25 Jul, 2017 1 commit
3. 20 Jul, 2017 1 commit
• extending check_correctness · dbef90e4
Pavel Kus authored
```Previously we checked ortonormality of eigenvectors by comparing
the matrix S^T * S to identity matrix. The new feature is also
checking just the diagonal of the matrix S^T * S. By that we get
the information, how far are the eigenvectors from having length 1.
If it turns out to be important, we could try to normalize them
at the end of elpa, which is simple (in contrast with enforcing
better orthogonality).```
4. 18 Jul, 2017 5 commits
5. 17 Jul, 2017 2 commits
• Introducing analytical test · 8a9c9df1
Pavel Kus authored
```Introducing new test in which matrix and its eigendecomposition is
known and thus can be easily created and checked directly, without the
need to use scalapack or any other communication (apart from reducing
error).

The test is based on the fact, that if L_A and S_A are eigenvalues and
eigenvectors of matrix A, respectively, and L_B and S_B eigenvalues and
eigenvectors of B, then kron(L_A, L_B) and kron (S_A, S_B) are
eigenvalues and eigenvectors of kron(A, B).
Since it is easy to know exact eigendecomposition of a small matrix (e.g.
2x2), and kron operator has very simple structure, we can construct
arbitrarily large matrix and its eigendecomposition. We only have to
select small matrices such that the resulting matrix has unique and
ordered eigenvalues, so that the checking of the result is than easy.
Each element of matrix, eigenvector matrix and eigenvalue vector can
be quickly computed independently, just using its global coordinates.

The test is currently limited to matrices of size 2^n, but by
storing eigendecompositions of more small matrices (e.g. 3x3 and 5x5) we
could construct any matrix of size 2^n*3^m*5^o, which would probably be
sufficient, since most often used sizes (150, 1000, 5000, 2000, 60000)
are of this form.```
• Test "eigenvalues" and "solve_tridiagonal" · dde98bdb
Andreas Marek authored
```The routines "eigenvalues" and "solve_tridiagonal" are now
also tested directly with the new API (and not only via the
legacy API -> new API mapping)

Todo: adapt test generator script to contain some logic```
6. 07 Jul, 2017 4 commits
7. 04 Jul, 2017 1 commit
8. 03 Jul, 2017 1 commit
9. 26 Jun, 2017 1 commit
10. 02 Jun, 2017 1 commit
11. 01 Jun, 2017 1 commit
• A bit of cleanup of the test programs · 958032ef
Lorenz Huedepohl authored
```- Remove all use of ELPA internal modules, the test programs now
only use the public ELPA API. This is now enforced, by hiding the
private modules

- Prefix all test internal modules with "test_" to make it really
clear that these modules are not to be used by users.```
12. 30 May, 2017 1 commit
• Rename of "solve" method to "eigenvectors" · 0bbb7437
Andreas Marek authored
```The public "solve" method has been renamed "eigenvectors" since it
computes the eigenvalues and (at least parts of) the eigenvectors

Another routine "eigenvalues" will just compute the eigenvalues```
13. 22 May, 2017 2 commits
14. 16 May, 2017 3 commits
15. 28 Apr, 2017 1 commit
16. 20 Apr, 2017 1 commit
17. 19 Apr, 2017 1 commit
• Fix errors in tests for new interface · a953004b
Andreas Marek authored
```Actually, the complex cases have not been checked so far.
Furthermore, there has been an inconsistency between setting

set("gpu",1)

and *NOT* setting a GPU kernel via the set mechanism. Then, the
default kernel (which is *NOT* GPU) has been used```
18. 10 Apr, 2017 1 commit
19. 08 Apr, 2017 1 commit
20. 07 Apr, 2017 2 commits
21. 04 Apr, 2017 1 commit
22. 03 Apr, 2017 2 commits
• Initial version of new ELPA API · f91c0b4b
Lorenz Huedepohl authored
```This attempt at a new, more flexible API for ELPA should hopefully
result in less ABI/API breaking changes in the future.

The new API features a generic key/value system for options that can be
extended without changing any exported symbols or function signatures,
so that new, optional features do not influence existing usage of ELPA.

We hope this makes life easier for users of ELPA - at least in the long
run when they migrated to this newest of ABI changes :)

Example usage (explicit documentation to be done in a future commit):

if (elpa_init(20170403) /= ELPA_OK) then
error stop "ELPA API version not supported"
endif

e = elpa_create(na, nev, na_rows, na_cols, nblk, mpi_comm_world, my_prow, my_pcol, success)

call e%set("solver", ELPA_SOLVER_2STAGE)
call e%set("real_kernel", ELPA_2STAGE_REAL_GENERIC)

call e%solve(a, ev, z, success)

call e%destroy()

call elpa_uninit()```
• Improve crazy assert macro · 4de50074
Lorenz Huedepohl authored
23. 16 Feb, 2017 1 commit
24. 31 Jan, 2017 1 commit
25. 16 Jan, 2017 1 commit
26. 11 Nov, 2016 1 commit
27. 01 Nov, 2016 1 commit