- 27 Jul, 2017 1 commit
-
-
Andreas Marek authored
-
- 25 Jul, 2017 1 commit
-
-
Lorenz Huedepohl authored
-
- 20 Jul, 2017 1 commit
-
-
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).
-
- 18 Jul, 2017 5 commits
-
-
Andreas Marek authored
-
Andreas Marek authored
-
Andreas Marek authored
-
Andreas Marek authored
-
Andreas Marek authored
The functions in elpa_utilities are considered "ELPA internal", i.e. the should not be accessible by the users and thus not be part of the API.
-
- 17 Jul, 2017 2 commits
-
-
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.
-
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
-
- 07 Jul, 2017 4 commits
-
-
Andreas Marek authored
-
Andreas Marek authored
-
Lorenz Huedepohl authored
-
Lorenz Huedepohl authored
-
- 04 Jul, 2017 1 commit
-
-
Andreas Marek authored
In case of GPU build it is NOT sufficient to loop over all kernels: For the GPU kernels one must ALSO set that GPUs should be used
-
- 03 Jul, 2017 1 commit
-
-
Lorenz Huedepohl authored
-
- 26 Jun, 2017 1 commit
-
-
Andreas Marek authored
-
- 02 Jun, 2017 1 commit
-
-
Lorenz Huedepohl authored
-
- 01 Jun, 2017 1 commit
-
-
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.
-
- 30 May, 2017 1 commit
-
-
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
-
- 22 May, 2017 2 commits
-
-
Lorenz Huedepohl authored
-
Lorenz Huedepohl authored
This is a bit cumbersome, as it involves yet another abstract intermediate type, but necessary due to language limitations.
-
- 16 May, 2017 3 commits
-
-
Lorenz Huedepohl authored
The legacy API is has been (internally) ported to use the new interface. The intent is that users of the legacy API do not have to change their codes. Next step is to completely adapt the .gitlab-ci.yml file
-
Lorenz Huedepohl authored
Still missing is the compatibility layer, currently it only compiles when configure is called with --disable-legacy Also, a more general solution to parameter passing via environment variables would be nice.
-
Lorenz Huedepohl authored
-
- 28 Apr, 2017 1 commit
-
-
Pavel Kus authored
-
- 20 Apr, 2017 1 commit
-
-
Andreas Marek authored
-
- 19 Apr, 2017 1 commit
-
-
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
-
- 10 Apr, 2017 1 commit
-
-
Pavel Kus authored
Unfortunately C macros can have only 1 line and length of line is limited ---> workaround to be able to compile
-
- 08 Apr, 2017 1 commit
-
-
Andreas Marek authored
-
- 07 Apr, 2017 2 commits
-
-
Andreas Marek authored
-
Andreas Marek authored
-
- 04 Apr, 2017 1 commit
-
-
Lorenz Huedepohl authored
They are in a sad state, it's all copy&paste and chaos. This commit only touches the surface so far.
-
- 03 Apr, 2017 2 commits
-
-
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()
-
Lorenz Huedepohl authored
-
- 16 Feb, 2017 1 commit
-
-
Andreas Marek authored
-
- 31 Jan, 2017 1 commit
-
-
Andreas Marek authored
-
- 16 Jan, 2017 1 commit
-
-
Pavel Kus authored
-
- 11 Nov, 2016 1 commit
-
-
Andreas Marek authored
-
- 01 Nov, 2016 1 commit
-
-
Andreas Marek authored
-