elpa:1e00f16aebc5c360a4c3441090ad684e59bcccf4 commitshttps://gitlab.mpcdf.mpg.de/elpa/elpa/-/commits/1e00f16aebc5c360a4c3441090ad684e59bcccf42017-07-20T14:19:20+02:00https://gitlab.mpcdf.mpg.de/elpa/elpa/-/commit/1e00f16aebc5c360a4c3441090ad684e59bcccf4Fix error in analytic tests2017-07-20T14:19:20+02:00Andreas Marekamarek@rzg.mpg.dehttps://gitlab.mpcdf.mpg.de/elpa/elpa/-/commit/3925cb4ae8c163c97533266f3f168a7234cdf4acDo not use "elpa_utilities" in test programs2017-07-18T08:39:35+02:00Andreas Marekamarek@rzg.mpg.de
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.https://gitlab.mpcdf.mpg.de/elpa/elpa/-/commit/a3c411ab039ba69e74313a4f5930a1e8522b0584Add copyright info2017-07-18T08:34:53+02:00Andreas Marekamarek@rzg.mpg.dehttps://gitlab.mpcdf.mpg.de/elpa/elpa/-/commit/701cb2dda4f418401a72041e032fb08abfec8640Remove trailing whitespaces2017-07-18T08:29:27+02:00Andreas Marekamarek@rzg.mpg.dehttps://gitlab.mpcdf.mpg.de/elpa/elpa/-/commit/76a9a0a6acbda562b75f1644156cd846d62c8128increasing error tolerance2017-07-17T23:32:19+02:00Pavel Kuspavel.kus@gmail.com
Should be done in a more systematic way. In this case, in certain
configuration 1stage_analytic test pased, while 2stage_analytic tests
failed due to error larger then tolerancehttps://gitlab.mpcdf.mpg.de/elpa/elpa/-/commit/8a9c9df17543861f8f4bcd3792d20278fd55bc9bIntroducing analytical test2017-07-17T23:11:39+02:00Pavel Kuspavel.kus@gmail.com
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.