elpa_solve_evp_complex_2stage_double.3 6.17 KB
Newer Older
1
.TH "elpa_solve_evp_complex_2stage_double" 3 "Wed Jan 15 2017" "ELPA" \" -*- nroff -*-
2 3 4
.ad l
.nh
.SH NAME
Andreas Marek's avatar
Andreas Marek committed
5
elpa_solve_evp_complex_2stage_double \- solve the double-precision complex eigenvalue problem with the 2-stage ELPA solver
6 7 8 9 10 11 12 13 14
.br

.SH SYNOPSIS
.br
.SS FORTRAN INTERFACE
use elpa1
use elpa2
.br
.br
15
.RI  "success = \fBelpa_solve_evp_real_2stage_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_COMPLEX_ELPA_KERNEL, useGPU, bandwidth)"
16 17 18 19 20 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
.br
.RI " "
.br
.RI "With the definintions of the input and output variables:"

.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 "complex*16,  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 "complex*16,  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 "int                        \fBTHIS_ELPA_COMPLEX_KERNEL\fp: choose the compute kernel for 2-stage solver"
Andreas Marek's avatar
Andreas Marek committed
47 48 49
.br
.RI "logical, intent(in), optional: \fBuseGPU\fP:               decide whether GPUs should be used or not"
.br
50 51
.RI "integer, intent(in), optional: \fBbandwidth\fP:            bandwidth of an already banded matrix"
.br
52 53 54 55 56 57 58 59
.RI "logical                    \fBsuccess\fP:                  return value indicating success or failure"
.br
.SS C INTERFACE
#include "elpa.h"
.br
#include <complex.h>

.br
60
.RI "success = \fBelpa_solve_evp_complex_2stage_double\fP (\fBint\fP na, \fBint\fP nev, \fB double complex *\fPa, \fBint\fP lda, \fB double *\fPev, \fBdouble complex *\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_COMPLEX_KERNEL, \fBint\fP useGPU, \fBint\fP bandwidth);"
61 62 63 64 65 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
.br
.RI " "
.br
.RI "With the definintions of the input and output variables:"

.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 complex *\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 complex *\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_COMPLEX_KERNEL\fp: choose the compute kernel for 2-stage solver"
.br
Andreas Marek's avatar
Andreas Marek committed
93
.RI "int             \fBuseGPU\fP:                   decide whether GPUs should be used or not"
94 95 96
.br
.RI "int             \fBbandwidth\fP:                bandwidth of an already banded matrix"
.br
Andreas Marek's avatar
Andreas Marek committed
97
.RI "int             \fBsuccess\fP:                  return value indicating success (1) or failure (0)
98 99 100 101 102 103 104

.SH DESCRIPTION
Solve the complex eigenvalue problem with the 2-stage solver. 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
The interface \fBelpa_solve_evp_complex\fP(3) is a more flexible alternative.
.br
.SH "SEE ALSO"
Andreas Marek's avatar
Andreas Marek committed
105
\fBelpa_get_communicators\fP(3) \fBelpa_solve_evp_real\fP(3) \fBelpa_solve_evp_complex\fP(3) \fBelpa_solve_evp_real_1stage\fP(3) \fBelpa_solve_evp_complex_1stage\fP(3) \fBelpa_solve_evp_real_2stage_double\fP(3) \fBelpa_solve_evp_real_2stage_single\fP(3) \fBelpa_solve_evp_complex_2stage_single\fP(3) \fBelpa2_print_kernels\fP(1)