elpa_solve_evp_real_double.3 6.33 KB
Newer Older
1
.TH "elpa_solve_evp_real_double" 3 "Wed May 17 2017" "ELPA" \" -*- nroff -*-
2 3 4
.ad l
.nh
.SH NAME
5
elpa_solve_evp_real_double \- solve the real eigenvalue problem (legacy interface)
6 7 8 9 10
.br

.SH SYNOPSIS
.br
.SS FORTRAN INTERFACE
11
use elpa_driver
12 13
.br
.br
14
.RI  "success = \fBelpa_solve_evp_real_double\fP (na, nev, a(lda,matrixCols), ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, THIS_REAL_ELPA_KERNEL, useQr, useGPU, method=method)"
15 16 17 18 19
.br
.RI " "
.br
.RI "Generalized interface to the ELPA 1stage and 2stage solver for real-valued problems"
.br
Andreas Marek's avatar
Andreas Marek committed
20
.RI "With the definitions of the input and output variables:"
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

.br
.RI "integer, intent(in)            \fBna\fP:                    global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "integer, intent(in)            \fBnev\fP:                   number of eigenvalues to be computed; the first \fBnev\fP eigenvalules are calculated"
.br
.RI "real*8,  intent(inout)         \fBa\fP:                     locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP"
.br
.RI "integer, intent(in)            \fBlda\fP:                   leading dimension of locally distributed matrix \fBa\fP"
.br
.RI "real*8,  intent(inout)         \fBev\fP:                    on output the first \fBnev\fP computed eigenvalues"
.br
.RI "real*8,  intent(inout)         \fBq\fP:                     on output the first \fBnev\fP computed eigenvectors"
.br
.RI "integer, intent(in)            \fBldq\fP:                   leading dimension of matrix \fBq\fP which stores the eigenvectors"
.br
.RI "integer, intent(in)            \fBnblk\fP:                  blocksize of block cyclic distributin, must be the same in both directions"
.br
.RI "integer, intent(in)            \fBmatrixCols\fP:            number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br
.RI "integer, intent(in)            \fBmpi_comm_rows\fP:         communicator for communication in rows. Constructed with \fBelpa_get_communicators\fP(3)"
.br
.RI "integer, intent(in)            \fBmpi_comm_cols\fP:         communicator for communication in colums. Constructed with \fBelpa_get_communicators\fP(3)"
.br
.RI "integer, intent(in)            \fBmpi_comm_all\fP:          communicator for all processes in the processor set involved in ELPA"
.br
.RI "integer, intent(in), optional: \fPTHIS_REAL_ELPA_KERNEL\fB: optional argument, choose the compute kernel for 2-stage solver"
.br
.RI "logical, intent(in), optional: \fBuseQR\fP:                 optional argument; switches to QR-decomposition if set to .true."
.br
51 52
.RI "logical, optional, intent(in)  \fBuseGPU\fP:                specify whether GPUs should be used or not used"
.br
53 54 55 56 57
.RI "character(*), optional         \fBmethod\fP:                use 1stage solver if "1stage", use 2stage solver if "2stage", (at the moment) use 2stage solver if "auto" "

.RI "logical                        \fBsuccess\fP:               return value indicating success or failure"
.br
.SS C INTERFACE
58
#include "elpa_legacy.h"
59 60

.br
61
.RI "success = \fBelpa_solve_evp_real_double\fP (\fBint\fP na, \fBint\fP nev, \fB double *\fPa, \fBint\fP lda, \fB double *\fPev, \fBdouble *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP mpi_comm_all, \fBint\fP THIS_ELPA_REAL_KERNEL, \fBint\fP useQr, \fBint\fP useGPU, \fbchar *\fPmethod);"
62 63 64
.br
.RI " "
.br
Andreas Marek's avatar
Andreas Marek committed
65
.RI "With the definitions of the input and output variables:"
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

.br
.RI "int     \fBna\fP:                    global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "int     \fBnev\fP:                   number of eigenvalues to be computed; the first \fBnev\fP eigenvalules are calculated"
.br
.RI "double *\fBa\fP:                     pointer to locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP"
.br
.RI "int     \fBlda\fP:                   leading dimension of locally distributed matrix \fBa\fP"
.br
.RI "double *\fBev\fP:                    pointer to memory containing on output the first \fBnev\fP computed eigenvalues"
.br
.RI "double *\fBq\fP:                     pointer to memory containing on output the first \fBnev\fP computed eigenvectors"
.br
.RI "int     \fBldq\fP:                   leading dimension of matrix \fBq\fP which stores the eigenvectors"
.br
.RI "int     \fBnblk\fP:                  blocksize of block cyclic distributin, must be the same in both directions"
.br
.RI "int     \fBmatrixCols\fP:            number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br
.RI "int     \fBmpi_comm_rows\fP:         communicator for communication in rows. Constructed with \fBelpa_get_communicators\fP(3)"
.br
.RI "int     \fBmpi_comm_cols\fP:         communicator for communication in colums. Constructed with \fBelpa_get_communicators\fP(3)"
.br
.RI "int     \fBmpi_comm_all\fP:          communicator for all processes in the processor set involved in ELPA"
.br
.RI "int     \fBTHIS_ELPA_REAL_KERNEL\fp: choose the compute kernel for 2-stage solver"
.br
.RI "int     \fBuseQR\fP:                 if set to 1 switch to QR-decomposition"
.br
96 97
.RI "int     \fBuseGPU\fP:                specify whether GPUS should be used or not
.br
98 99 100 101 102 103 104
.RI "char   *\fBmethod\fP:                use 1stage solver if "1stage", use 2stage solver if "2stage", (at the moment) use 2stage solver if "auto" "

.RI "int     \fBsuccess\fP:               return value indicating success (1) or failure (0)

.SH DESCRIPTION
Solve the real eigenvalue problem. The value of \fBmethod\fP desides whether the 1stage or 2stage solver is used. The ELPA communicators \fBmpi_comm_rows\fP and \fBmpi_comm_cols\fP are obtained with the \fBelpa_get_communicators\fP(3) function. The distributed quadratic marix \fBa\fP has global dimensions \fBna\fP x \fBna\fP, and a local size \fBlda\fP x \fBmatrixCols\fP. The solver will compute the first \fBnev\fP eigenvalues, which will be stored on exit in \fBev\fP. The eigenvectors corresponding to the eigenvalues will be stored in \fBq\fP. All memory of the arguments must be allocated outside the call to the solver.
.br
105 106
This function is part of the legacy API of the ELPA library. Better use the current API.
.br
107
.SH "SEE ALSO"
108 109 110 111
\fBelpa_get_communicators\fP(3) \fBelpa_solve_evp_real_single\fP(3) \fBelpa_solve_evp_complex_double\fP(3) \fBelpa_solve_evp_complex_single\fP(3)
.br
Current interface:
\fBelpa2_print_kernels\fP(1)