EigenvalueSoLversforPetaflop-Applications(ELPA)  2016.05.001
Functions
elpa_generated.h File Reference
#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...
 

Function Documentation

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.

Parameters
mpi_comm_wordMPI global communicator (in)
my_prowRow coordinate of the calling process in the process grid (in)
my_pcolColumn coordinate of the calling process in the process grid (in)
mpi_comm_rowsCommunicator for communicating within rows of processes (out)
Returns
int integer error value of mpi_comm_split function
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.

Parameters
naOrder of matrix a
nevNumber of eigenvalues needed. The smallest nev eigenvalues/eigenvectors are calculated.
aDistributed 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).
ldaLeading dimension of a
ev(na)On output: eigenvalues of a, every processor gets the complete set
qOn 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.
ldqLeading dimension of q
nblkblocksize of cyclic distribution, must be the same in both directions!
matrixColsdistributed number of matrix columns
mpi_comm_rowsMPI-Communicator for rows
mpi_comm_colsMPI-Communicator for columns
Returns
int: 1 if error occured, otherwise 0
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.

Parameters
naOrder of matrix a
nevNumber of eigenvalues needed. The smallest nev eigenvalues/eigenvectors are calculated.
aDistributed 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).
ldaLeading dimension of a
ev(na)On output: eigenvalues of a, every processor gets the complete set
qOn 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.
ldqLeading dimension of q
nblkblocksize of cyclic distribution, must be the same in both directions!
matrixColsdistributed number of matrix columns
mpi_comm_rowsMPI-Communicator for rows
mpi_comm_colsMPI-Communicator for columns
mpi_coll_allMPI communicator for the total processor set
THIS_REAL_ELPA_KERNEL_APIspecify used ELPA2 kernel via API
use_qruse QR decomposition 1 = yes, 0 = no
Returns
int: 1 if error occured, otherwise 0
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.

Parameters
naOrder of matrix a
nevNumber of eigenvalues needed. The smallest nev eigenvalues/eigenvectors are calculated.
aDistributed 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).
ldaLeading dimension of a
ev(na)On output: eigenvalues of a, every processor gets the complete set
qOn 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.
ldqLeading dimension of q
nblkblocksize of cyclic distribution, must be the same in both directions!
matrixColsdistributed number of matrix columns
mpi_comm_rowsMPI-Communicator for rows
mpi_comm_colsMPI-Communicator for columns
Returns
int: 1 if error occured, otherwise 0
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.

Parameters
naOrder of matrix a
nevNumber of eigenvalues needed. The smallest nev eigenvalues/eigenvectors are calculated.
aDistributed 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).
ldaLeading dimension of a
ev(na)On output: eigenvalues of a, every processor gets the complete set
qOn 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.
ldqLeading dimension of q
nblkblocksize of cyclic distribution, must be the same in both directions!
matrixColsdistributed number of matrix columns
mpi_comm_rowsMPI-Communicator for rows
mpi_comm_colsMPI-Communicator for columns
mpi_coll_allMPI communicator for the total processor set
THIS_REAL_ELPA_KERNEL_APIspecify used ELPA2 kernel via API
use_qruse QR decomposition 1 = yes, 0 = no
Returns
int: 1 if error occured, otherwise 0
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.

Parameters
mpi_comm_wordMPI global communicator (in)
my_prowRow coordinate of the calling process in the process grid (in)
my_pcolColumn coordinate of the calling process in the process grid (in)
mpi_comm_rowsCommunicator for communicating within rows of processes (out)
Returns
int integer error value of mpi_comm_split function