EigenvalueSoLversforPetaflop-Applications(ELPA)
2016.05.001
|
#include <complex.h>
Go to the source code of this file.
Functions | |
int | elpa_get_communicators (int mpi_comm_world, int my_prow, int my_pcol, int *mpi_comm_rows, int *mpi_comm_cols) |
C old, deprecated interface to create the MPI communicators for ELPA. More... | |
int | get_elpa_communicators (int mpi_comm_world, int my_prow, int my_pcol, int *mpi_comm_rows, int *mpi_comm_cols) |
C interface to create the MPI communicators for ELPA. More... | |
int | elpa_solve_evp_real_1stage (int na, int nev, double *a, int lda, double *ev, double *q, int ldq, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols) |
C interface to solve the real eigenvalue problem with 1-stage solver. More... | |
int | elpa_solve_evp_complex_1stage (int na, int nev, double complex *a, int lda, double *ev, double complex *q, int ldq, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols) |
C interface to solve the complex eigenvalue problem with 1-stage solver. More... | |
int | elpa_solve_evp_real_2stage (int na, int nev, double *a, int lda, double *ev, double *q, int ldq, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int mpi_comm_all, int THIS_REAL_ELPA_KERNEL_API, int useQR) |
C interface to solve the real eigenvalue problem with 2-stage solver. More... | |
int | elpa_solve_evp_complex_2stage (int na, int nev, double complex *a, int lda, double *ev, double complex *q, int ldq, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int mpi_comm_all, int THIS_COMPLEX_ELPA_KERNEL_API) |
C interface to solve the complex eigenvalue problem with 2-stage solver. More... | |
int elpa_get_communicators | ( | int | mpi_comm_world, |
int | my_prow, | ||
int | my_pcol, | ||
int * | mpi_comm_rows, | ||
int * | mpi_comm_cols | ||
) |
C old, deprecated interface to create the MPI communicators for ELPA.
mpi_comm_word | MPI global communicator (in) |
my_prow | Row coordinate of the calling process in the process grid (in) |
my_pcol | Column coordinate of the calling process in the process grid (in) |
mpi_comm_rows | Communicator for communicating within rows of processes (out) |
int elpa_solve_evp_complex_1stage | ( | int | na, |
int | nev, | ||
double complex * | a, | ||
int | lda, | ||
double * | ev, | ||
double complex * | q, | ||
int | ldq, | ||
int | nblk, | ||
int | matrixCols, | ||
int | mpi_comm_rows, | ||
int | mpi_comm_cols | ||
) |
C interface to solve the complex eigenvalue problem with 1-stage solver.
na | Order of matrix a |
nev | Number of eigenvalues needed. The smallest nev eigenvalues/eigenvectors are calculated. |
a | Distributed matrix for which eigenvalues are to be computed. Distribution is like in Scalapack. The full matrix must be set (not only one half like in scalapack). |
lda | Leading dimension of a |
ev(na) | On output: eigenvalues of a, every processor gets the complete set |
q | On output: Eigenvectors of a Distribution is like in Scalapack. Must be always dimensioned to the full size (corresponding to (na,na)) even if only a part of the eigenvalues is needed. |
ldq | Leading dimension of q |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
matrixCols | distributed number of matrix columns |
mpi_comm_rows | MPI-Communicator for rows |
mpi_comm_cols | MPI-Communicator for columns |
int elpa_solve_evp_complex_2stage | ( | int | na, |
int | nev, | ||
double complex * | a, | ||
int | lda, | ||
double * | ev, | ||
double complex * | q, | ||
int | ldq, | ||
int | nblk, | ||
int | matrixCols, | ||
int | mpi_comm_rows, | ||
int | mpi_comm_cols, | ||
int | mpi_comm_all, | ||
int | THIS_COMPLEX_ELPA_KERNEL_API | ||
) |
C interface to solve the complex eigenvalue problem with 2-stage solver.
na | Order of matrix a |
nev | Number of eigenvalues needed. The smallest nev eigenvalues/eigenvectors are calculated. |
a | Distributed matrix for which eigenvalues are to be computed. Distribution is like in Scalapack. The full matrix must be set (not only one half like in scalapack). |
lda | Leading dimension of a |
ev(na) | On output: eigenvalues of a, every processor gets the complete set |
q | On output: Eigenvectors of a Distribution is like in Scalapack. Must be always dimensioned to the full size (corresponding to (na,na)) even if only a part of the eigenvalues is needed. |
ldq | Leading dimension of q |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
matrixCols | distributed number of matrix columns |
mpi_comm_rows | MPI-Communicator for rows |
mpi_comm_cols | MPI-Communicator for columns |
mpi_coll_all | MPI communicator for the total processor set |
THIS_REAL_ELPA_KERNEL_API | specify used ELPA2 kernel via API |
use_qr | use QR decomposition 1 = yes, 0 = no |
int elpa_solve_evp_real_1stage | ( | int | na, |
int | nev, | ||
double * | a, | ||
int | lda, | ||
double * | ev, | ||
double * | q, | ||
int | ldq, | ||
int | nblk, | ||
int | matrixCols, | ||
int | mpi_comm_rows, | ||
int | mpi_comm_cols | ||
) |
C interface to solve the real eigenvalue problem with 1-stage solver.
na | Order of matrix a |
nev | Number of eigenvalues needed. The smallest nev eigenvalues/eigenvectors are calculated. |
a | Distributed matrix for which eigenvalues are to be computed. Distribution is like in Scalapack. The full matrix must be set (not only one half like in scalapack). |
lda | Leading dimension of a |
ev(na) | On output: eigenvalues of a, every processor gets the complete set |
q | On output: Eigenvectors of a Distribution is like in Scalapack. Must be always dimensioned to the full size (corresponding to (na,na)) even if only a part of the eigenvalues is needed. |
ldq | Leading dimension of q |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
matrixCols | distributed number of matrix columns |
mpi_comm_rows | MPI-Communicator for rows |
mpi_comm_cols | MPI-Communicator for columns |
int elpa_solve_evp_real_2stage | ( | int | na, |
int | nev, | ||
double * | a, | ||
int | lda, | ||
double * | ev, | ||
double * | q, | ||
int | ldq, | ||
int | nblk, | ||
int | matrixCols, | ||
int | mpi_comm_rows, | ||
int | mpi_comm_cols, | ||
int | mpi_comm_all, | ||
int | THIS_REAL_ELPA_KERNEL_API, | ||
int | useQR | ||
) |
C interface to solve the real eigenvalue problem with 2-stage solver.
na | Order of matrix a |
nev | Number of eigenvalues needed. The smallest nev eigenvalues/eigenvectors are calculated. |
a | Distributed matrix for which eigenvalues are to be computed. Distribution is like in Scalapack. The full matrix must be set (not only one half like in scalapack). |
lda | Leading dimension of a |
ev(na) | On output: eigenvalues of a, every processor gets the complete set |
q | On output: Eigenvectors of a Distribution is like in Scalapack. Must be always dimensioned to the full size (corresponding to (na,na)) even if only a part of the eigenvalues is needed. |
ldq | Leading dimension of q |
nblk | blocksize of cyclic distribution, must be the same in both directions! |
matrixCols | distributed number of matrix columns |
mpi_comm_rows | MPI-Communicator for rows |
mpi_comm_cols | MPI-Communicator for columns |
mpi_coll_all | MPI communicator for the total processor set |
THIS_REAL_ELPA_KERNEL_API | specify used ELPA2 kernel via API |
use_qr | use QR decomposition 1 = yes, 0 = no |
int get_elpa_communicators | ( | int | mpi_comm_world, |
int | my_prow, | ||
int | my_pcol, | ||
int * | mpi_comm_rows, | ||
int * | mpi_comm_cols | ||
) |
C interface to create the MPI communicators for ELPA.
mpi_comm_word | MPI global communicator (in) |
my_prow | Row coordinate of the calling process in the process grid (in) |
my_pcol | Column coordinate of the calling process in the process grid (in) |
mpi_comm_rows | Communicator for communicating within rows of processes (out) |