EigenvalueSoLversforPetaflop-Applications(ELPA)
2016.05.003
|
Data Types | |
interface | cholesky_complex |
old, deprecated interface cholesky_complex: Cholesky factorization of a complex hermitian matrix More... | |
interface | cholesky_real |
old, deprecated interface cholesky_real: Cholesky factorization of a real symmetric matrix More... | |
interface | invert_trm_complex |
old, deprecated interface invert_trm_complex: Inverts a complex upper triangular matrix More... | |
interface | invert_trm_real |
Old, deprecated interface invert_trm_real: Inverts a upper triangular matrix. More... | |
interface | mult_ah_b_complex |
Old, deprecated interface mult_ah_b_complex: Performs C : = A**H * B where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed. More... | |
interface | mult_at_b_real |
mult_at_b_real: Performs C : = A**T * B this is the old, deprecated interface for the newer elpa_mult_at_b_real where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed More... | |
Functions/Subroutines | |
logical function, public | elpa_cholesky_real (na, a, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, wantDebug) |
elpa_cholesky_real: Cholesky factorization of a real symmetric matrix More... | |
logical function, public | elpa_invert_trm_real (na, a, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, wantDebug) |
elpa_invert_trm_real: Inverts a upper triangular matrix More... | |
logical function, public | elpa_cholesky_complex (na, a, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, wantDebug) |
elpa_cholesky_complex: Cholesky factorization of a complex hermitian matrix More... | |
logical function, public | elpa_invert_trm_complex (na, a, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, wantDebug) |
elpa_invert_trm_complex: Inverts a complex upper triangular matrix More... | |
logical function, public | elpa_mult_at_b_real (uplo_a, uplo_c, na, ncb, a, lda, b, ldb, nblk, mpi_comm_rows, mpi_comm_cols, c, ldc) |
elpa_mult_at_b_real: Performs C : = A**T * B where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed More... | |
logical function, public | elpa_mult_ah_b_complex (uplo_a, uplo_c, na, ncb, a, lda, b, ldb, nblk, mpi_comm_rows, mpi_comm_cols, c, ldc) |
elpa_mult_ah_b_complex: Performs C : = A**H * B where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed More... | |
logical function, public | elpa_solve_tridi (na, nev, d, e, q, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, wantDebug) |
elpa_solve_tridi: Solve tridiagonal eigensystem with divide and conquer method More... | |
logical function, public elpa1_auxiliary::elpa_cholesky_complex | ( | integer(kind=ik) | na, |
complex(kind=ck), dimension(lda,matrixcols) | a, | ||
integer(kind=ik) | lda, | ||
integer(kind=ik) | nblk, | ||
integer(kind=ik) | matrixCols, | ||
integer(kind=ik) | mpi_comm_rows, | ||
integer(kind=ik) | mpi_comm_cols, | ||
logical, intent(in) | wantDebug | ||
) |
elpa_cholesky_complex: Cholesky factorization of a complex hermitian matrix
na | Order of matrix |
a(lda,matrixCols) | Distributed matrix which should be factorized. Distribution is like in Scalapack. Only upper triangle is needs to be set. On return, the upper triangle contains the Cholesky factor and the lower triangle is set to 0. |
lda | Leading dimension of a |
matrixCols | local columns of matrix a |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
mpi_comm_rows | MPI communicator for rows |
mpi_comm_cols | MPI communicator for columns |
wantDebug | logical, more debug information on failure |
logical function, public elpa1_auxiliary::elpa_cholesky_real | ( | integer(kind=ik) | na, |
real(kind=rk), dimension(lda,matrixcols) | a, | ||
integer(kind=ik) | lda, | ||
integer(kind=ik) | nblk, | ||
integer(kind=ik) | matrixCols, | ||
integer(kind=ik) | mpi_comm_rows, | ||
integer(kind=ik) | mpi_comm_cols, | ||
logical, intent(in) | wantDebug | ||
) |
elpa_cholesky_real: Cholesky factorization of a real symmetric matrix
na | Order of matrix |
a(lda,matrixCols) | Distributed matrix which should be factorized. Distribution is like in Scalapack. Only upper triangle is needs to be set. On return, the upper triangle contains the Cholesky factor and the lower triangle is set to 0. |
lda | Leading dimension of a |
matrixCols | local columns of matrix a |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
mpi_comm_rows | MPI communicator for rows |
mpi_comm_cols | MPI communicator for columns |
wantDebug | logical, more debug information on failure |
logical function, public elpa1_auxiliary::elpa_invert_trm_complex | ( | integer(kind=ik) | na, |
complex(kind=ck), dimension(lda,matrixcols) | a, | ||
integer(kind=ik) | lda, | ||
integer(kind=ik) | nblk, | ||
integer(kind=ik) | matrixCols, | ||
integer(kind=ik) | mpi_comm_rows, | ||
integer(kind=ik) | mpi_comm_cols, | ||
logical, intent(in) | wantDebug | ||
) |
elpa_invert_trm_complex: Inverts a complex upper triangular matrix
na | Order of matrix |
a(lda,matrixCols) | Distributed matrix which should be inverted Distribution is like in Scalapack. Only upper triangle is needs to be set. The lower triangle is not referenced. |
lda | Leading dimension of a |
matrixCols | local columns of matrix a |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
mpi_comm_rows | MPI communicator for rows |
mpi_comm_cols | MPI communicator for columns |
wantDebug | logical, more debug information on failure |
logical function, public elpa1_auxiliary::elpa_invert_trm_real | ( | integer(kind=ik) | na, |
real(kind=rk), dimension(lda,matrixcols) | a, | ||
integer(kind=ik) | lda, | ||
integer(kind=ik) | nblk, | ||
integer(kind=ik) | matrixCols, | ||
integer(kind=ik) | mpi_comm_rows, | ||
integer(kind=ik) | mpi_comm_cols, | ||
logical, intent(in) | wantDebug | ||
) |
elpa_invert_trm_real: Inverts a upper triangular matrix
na | Order of matrix |
a(lda,matrixCols) | Distributed matrix which should be inverted Distribution is like in Scalapack. Only upper triangle is needs to be set. The lower triangle is not referenced. |
lda | Leading dimension of a |
matrixCols | local columns of matrix a |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
mpi_comm_rows | MPI communicator for rows |
mpi_comm_cols | MPI communicator for columns |
wantDebug | logical, more debug information on failure |
logical function, public elpa1_auxiliary::elpa_mult_ah_b_complex | ( | character*1 | uplo_a, |
character*1 | uplo_c, | ||
integer(kind=ik) | na, | ||
integer(kind=ik) | ncb, | ||
complex(kind=ck), dimension(lda,*) | a, | ||
integer(kind=ik) | lda, | ||
complex(kind=ck), dimension(ldb,*) | b, | ||
integer(kind=ik) | ldb, | ||
integer(kind=ik) | nblk, | ||
integer(kind=ik) | mpi_comm_rows, | ||
integer(kind=ik) | mpi_comm_cols, | ||
complex(kind=ck), dimension(ldc,*) | c, | ||
integer(kind=ik) | ldc | ||
) |
elpa_mult_ah_b_complex: Performs C : = A**H * B where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed
uplo_a | 'U' if A is upper triangular 'L' if A is lower triangular anything else if A is a full matrix Please note: This pertains to the original A (as set in the calling program) whereas the transpose of A is used for calculations If uplo_a is 'U' or 'L', the other triangle is not used at all, i.e. it may contain arbitrary numbers |
uplo_c | 'U' if only the upper diagonal part of C is needed 'L' if only the upper diagonal part of C is needed anything else if the full matrix C is needed Please note: Even when uplo_c is 'U' or 'L', the other triangle may be written to a certain extent, i.e. one shouldn't rely on the content there! |
na | Number of rows/columns of A, number of rows of B and C |
ncb | Number of columns of B and C |
a | matrix a |
lda | leading dimension of matrix a |
b | matrix b |
ldb | leading dimension of matrix b |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
mpi_comm_rows | MPI communicator for rows |
mpi_comm_cols | MPI communicator for columns |
c | matrix c |
ldc | leading dimension of matrix c |
logical function, public elpa1_auxiliary::elpa_mult_at_b_real | ( | character*1 | uplo_a, |
character*1 | uplo_c, | ||
integer(kind=ik) | na, | ||
integer(kind=ik) | ncb, | ||
real(kind=rk), dimension(lda,*) | a, | ||
integer(kind=ik) | lda, | ||
real(kind=rk), dimension(ldb,*) | b, | ||
integer(kind=ik) | ldb, | ||
integer(kind=ik) | nblk, | ||
integer(kind=ik) | mpi_comm_rows, | ||
integer(kind=ik) | mpi_comm_cols, | ||
real(kind=rk), dimension(ldc,*) | c, | ||
integer(kind=ik) | ldc | ||
) |
elpa_mult_at_b_real: Performs C : = A**T * B where A is a square matrix (na,na) which is optionally upper or lower triangular B is a (na,ncb) matrix C is a (na,ncb) matrix where optionally only the upper or lower triangle may be computed
uplo_a | 'U' if A is upper triangular 'L' if A is lower triangular anything else if A is a full matrix Please note: This pertains to the original A (as set in the calling program) whereas the transpose of A is used for calculations If uplo_a is 'U' or 'L', the other triangle is not used at all, i.e. it may contain arbitrary numbers |
uplo_c | 'U' if only the upper diagonal part of C is needed 'L' if only the upper diagonal part of C is needed anything else if the full matrix C is needed Please note: Even when uplo_c is 'U' or 'L', the other triangle may be written to a certain extent, i.e. one shouldn't rely on the content there! |
na | Number of rows/columns of A, number of rows of B and C |
ncb | Number of columns of B and C |
a | matrix a |
lda | leading dimension of matrix a |
b | matrix b |
ldb | leading dimension of matrix b |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
mpi_comm_rows | MPI communicator for rows |
mpi_comm_cols | MPI communicator for columns |
c | matrix c |
ldc | leading dimension of matrix c |
logical function, public elpa1_auxiliary::elpa_solve_tridi | ( | integer(kind=ik) | na, |
integer(kind=ik) | nev, | ||
real(kind=rk), dimension(na) | d, | ||
real(kind=rk), dimension(na) | e, | ||
real(kind=rk), dimension(ldq,matrixcols) | q, | ||
integer(kind=ik) | ldq, | ||
integer(kind=ik) | nblk, | ||
integer(kind=ik) | matrixCols, | ||
integer(kind=ik) | mpi_comm_rows, | ||
integer(kind=ik) | mpi_comm_cols, | ||
logical, intent(in) | wantDebug | ||
) |
elpa_solve_tridi: Solve tridiagonal eigensystem with divide and conquer method
na | Matrix dimension |
nev | number of eigenvalues/vectors to be computed |
d | array d(na) on input diagonal elements of tridiagonal matrix, on output the eigenvalues in ascending order |
e | array e(na) on input subdiagonal elements of matrix, on exit destroyed |
q | on exit : matrix q(ldq,matrixCols) contains the eigenvectors |
ldq | leading dimension of matrix q |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
matrixCols | columns of matrix q |
mpi_comm_rows | MPI communicator for rows |
mpi_comm_cols | MPI communicator for columns |
wantDebug | logical, give more debug information if .true. |