Eigenvalue SoLvers for Petaflop-Applications (ELPA)  2016.05.004
Functions/Subroutines
ELPA Module Reference

Fortran module which provides the routines to the ELPA solver (1 and 2 stage) More...

Functions/Subroutines

logical function, public elpa_solve_evp_real (na, nev, a, lda, ev, q, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_REAL_ELPA_KERNEL_API, useQR, method)
 solve_evp_real: Fortran function to solve the real eigenvalue problem with either the ELPA 1stage or the ELPA 2stage solver More...
 
logical function, public elpa_solve_evp_complex (na, nev, a, lda, ev, q, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_COMPLEX_ELPA_KERNEL_API, method)
 solve_evp_complex: Fortran function to solve the complex eigenvalue problem with either the ELPA 1stage or the ELPA 2stage solver More...
 

Detailed Description

Fortran module which provides the routines to the ELPA solver (1 and 2 stage)

Function/Subroutine Documentation

§ elpa_solve_evp_complex()

logical function, public ELPA::elpa_solve_evp_complex ( integer(kind=c_int), intent(in)  na,
integer(kind=c_int), intent(in)  nev,
complex(kind=c_double), dimension(lda,*), intent(inout)  a,
integer(kind=c_int), intent(in)  lda,
real(kind=c_double), dimension(na), intent(inout)  ev,
complex(kind=c_double), dimension(ldq,*), intent(inout)  q,
integer(kind=c_int), intent(in)  ldq,
integer(kind=c_int), intent(in)  nblk,
integer(kind=c_int), intent(in)  matrixCols,
integer(kind=c_int), intent(in)  mpi_comm_rows,
integer(kind=c_int), intent(in)  mpi_comm_cols,
integer(kind=c_int), intent(in)  mpi_comm_all,
integer(kind=c_int), intent(in), optional  THIS_COMPLEX_ELPA_KERNEL_API,
character(*), intent(in), optional  method 
)

solve_evp_complex: Fortran function to solve the complex eigenvalue problem with either the ELPA 1stage or the ELPA 2stage solver

Parameters

Parameters
naOrder of matrix a
nevNumber of eigenvalues needed
a(lda,matrixCols)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). Destroyed on exit (upper and lower half).
ldaLeading dimension of a
ev(na)On output: eigenvalues of a, every processor gets the complete set
q(ldq,matrixCols)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.
ldqLeading dimension of q
nblkblocksize of cyclic distribution, must be the same in both directions!
matrixColslocal columns of matrix a and q
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
mpi_comm_allMPI communicator for the total processor set
THIS_REAL_COMPLEX_KERNEL_API(optional) specify used ELPA 2stage kernel via API (only evalulated if 2 stage solver is used_
methodchoose whether to use ELPA 1stage or 2stage solver possible values: "1stage" => use ELPA 1stage solver "2stage" => use ELPA 2stage solver "auto" => (at the moment) use ELPA 2stage solver
Returns
success logical, false if error occured

§ elpa_solve_evp_real()

logical function, public ELPA::elpa_solve_evp_real ( integer(kind=c_int), intent(in)  na,
integer(kind=c_int), intent(in)  nev,
real(kind=c_double), dimension(lda,*), intent(inout)  a,
integer(kind=c_int), intent(in)  lda,
real(kind=c_double), dimension(na), intent(inout)  ev,
real(kind=c_double), dimension(ldq,*), intent(inout)  q,
integer(kind=c_int), intent(in)  ldq,
integer(kind=c_int), intent(in)  nblk,
integer(kind=c_int), intent(in)  matrixCols,
integer(kind=c_int), intent(in)  mpi_comm_rows,
integer(kind=c_int), intent(in)  mpi_comm_cols,
integer(kind=c_int), intent(in)  mpi_comm_all,
integer(kind=c_int), intent(in), optional  THIS_REAL_ELPA_KERNEL_API,
logical, intent(in), optional  useQR,
character(*), intent(in), optional  method 
)

solve_evp_real: Fortran function to solve the real eigenvalue problem with either the ELPA 1stage or the ELPA 2stage solver

Parameters

Parameters
naOrder of matrix a
nevNumber of eigenvalues needed
a(lda,matrixCols)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). Destroyed on exit (upper and lower half).
ldaLeading dimension of a
ev(na)On output: eigenvalues of a, every processor gets the complete set
q(ldq,matrixCols)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.
ldqLeading dimension of q
nblkblocksize of cyclic distribution, must be the same in both directions!
matrixColslocal columns of matrix a and q
mpi_comm_rowsMPI communicator for rows
mpi_comm_colsMPI communicator for columns
mpi_comm_allMPI communicator for the total processor set
THIS_REAL_ELPA_KERNEL_API(optional) specify used ELPA 2stage kernel via API (only evalulated if 2 stage solver is used_
use_qr(optional) use QR decomposition in the ELPA 2stage solver
methodchoose whether to use ELPA 1stage or 2stage solver possible values: "1stage" => use ELPA 1stage solver "2stage" => use ELPA 2stage solver "auto" => (at the moment) use ELPA 2stage solver
Returns
success logical, false if error occured