solve_evp_complex_2stage.3 5.82 KB
Newer Older
1
.TH "solve_evp_complex_2stage" 3 "Tue Oct 18 2016" "ELPA" \" -*- nroff -*-
Andreas Marek's avatar
Andreas Marek committed
2 3 4 5
.ad l
.nh
.SH NAME
solve_evp_complex_2stage \- solve the complex eigenvalue problem with the 2-stage ELPA solver
6
Old, deprecated interface. It is recommended to use \fBelpa_solve_evp_complex_2stage\fP.(3)
Andreas Marek's avatar
Andreas Marek committed
7 8 9 10 11 12 13 14 15
.br

.SH SYNOPSIS
.br
.SS FORTRAN INTERFACE
use elpa1
use elpa2
.br
.br
16
.RI  "success = \fBsolve_evp_real_2stage\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=THIS_COMPLEX_ELPA_KERNEL)"
Andreas Marek's avatar
Andreas Marek committed
17 18 19 20 21 22
.br
.RI " "
.br
.RI "With the definintions of the input and output variables:"

.br
23
.RI "integer,     intent(in)    \fBna\fP:                       global dimension of quadratic matrix \fBa\fP to solve"
Andreas Marek's avatar
Andreas Marek committed
24
.br
25
.RI "integer,     intent(in)    \fBnev\fP:                      number of eigenvalues to be computed; the first \fBnev\fP eigenvalules are calculated"
Andreas Marek's avatar
Andreas Marek committed
26
.br
27
.RI "complex*16,  intent(inout) \fBa\fP:                        locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP"
Andreas Marek's avatar
Andreas Marek committed
28
.br
29
.RI "integer,     intent(in)    \fBlda\fP:                      leading dimension of locally distributed matrix \fBa\fP"
Andreas Marek's avatar
Andreas Marek committed
30
.br
31
.RI "real*8,      intent(inout) \fBev\fP:                       on output the first \fBnev\fP computed eigenvalues"
Andreas Marek's avatar
Andreas Marek committed
32
.br
33
.RI "complex*16,  intent(inout) \fBq\fP:                        on output the first \fBnev\fP computed eigenvectors"
Andreas Marek's avatar
Andreas Marek committed
34
.br
35
.RI "integer,     intent(in)    \fBldq\fP:                      leading dimension of matrix \fBq\fP which stores the eigenvectors"
Andreas Marek's avatar
Andreas Marek committed
36
.br
37
.RI "integer,     intent(in)    \fBnblk\fP:                     blocksize of block cyclic distributin, must be the same in both directions"
Andreas Marek's avatar
Andreas Marek committed
38
.br
39
.RI "integer,     intent(in)    \fBmatrixCols\fP:               number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
Andreas Marek's avatar
Andreas Marek committed
40
.br
41
.RI "integer,     intent(in)    \fBmpi_comm_rows\fP:            communicator for communication in rows. Constructed with \fBelpa_get_communicators\fP(3)"
Andreas Marek's avatar
Andreas Marek committed
42
.br
43
.RI "integer,     intent(in)    \fBmpi_comm_cols\fP:            communicator for communication in colums. Constructed with \fBelpa_get_communicators\fP(3)"
Andreas Marek's avatar
Andreas Marek committed
44
.br
45
.RI "integer,     intent(in)    \fBmpi_comm_all\fP:             communicator for all processes in the processor set involved in ELPA"
Andreas Marek's avatar
Andreas Marek committed
46
.br
47 48 49
.RI "int                        \fBTHIS_ELPA_COMPLEX_KERNEL\fp: choose the compute kernel for 2-stage solver"

.RI "logical                    \fBsuccess\fP:                  return value indicating success or failure"
Andreas Marek's avatar
Andreas Marek committed
50 51 52 53 54 55 56
.br
.SS C INTERFACE
#include "elpa.h"
.br
#include <complex.h>

.br
57
.RI "success = \fBsolve_evp_complex_2stage\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);"
Andreas Marek's avatar
Andreas Marek committed
58 59 60 61 62 63
.br
.RI " "
.br
.RI "With the definintions of the input and output variables:"

.br
64 65 66
.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"
Andreas Marek's avatar
Andreas Marek committed
67
.br
68
.RI "double complex *\fBa\fP:                        pointer to locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP"
Andreas Marek's avatar
Andreas Marek committed
69
.br
70
.RI "int             \fBlda\fP:                      leading dimension of locally distributed matrix \fBa\fP"
Andreas Marek's avatar
Andreas Marek committed
71
.br
72
.RI "double         *\fBev\fP:                       pointer to memory containing on output the first \fBnev\fP computed eigenvalues"
Andreas Marek's avatar
Andreas Marek committed
73
.br
74
.RI "double complex *\fBq\fP:                        pointer to memory containing on output the first \fBnev\fP computed eigenvectors"
Andreas Marek's avatar
Andreas Marek committed
75
.br
76
.RI "int             \fBldq\fP:                      leading dimension of matrix \fBq\fP which stores the eigenvectors"
Andreas Marek's avatar
Andreas Marek committed
77
.br
78
.RI "int             \fBnblk\fP:                     blocksize of block cyclic distributin, must be the same in both directions"
Andreas Marek's avatar
Andreas Marek committed
79
.br
80
.RI "int             \fBmatrixCols\fP:               number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
Andreas Marek's avatar
Andreas Marek committed
81
.br
82
.RI "int             \fBmpi_comm_rows\fP:            communicator for communication in rows. Constructed with \fBelpa_get_communicators\fP(3)"
Andreas Marek's avatar
Andreas Marek committed
83
.br
84
.RI "int             \fBmpi_comm_cols\fP:            communicator for communication in colums. Constructed with \fBelpa_get_communicators\fP(3)"
Andreas Marek's avatar
Andreas Marek committed
85
.br
86
.RI "int             \fBmpi_comm_all\fP:             communicator for all processes in the processor set involved in ELPA"
Andreas Marek's avatar
Andreas Marek committed
87
.br
88
.RI "int             \fBTHIS_ELPA_COMPLEX_KERNEL\fp: choose the compute kernel for 2-stage solver"
Andreas Marek's avatar
Andreas Marek committed
89
.br
90 91
.RI "char           *\fBmethod\fP:                   use 1stage solver if "1stage", use 2stage solver if "2stage", (at the moment) use 2stage solver if "auto" "

Andreas Marek's avatar
Andreas Marek committed
92 93 94
.RI "int             \fBsuccess\fP:       return value indicating success (1) or failure (0)

.SH DESCRIPTION
95
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.
Andreas Marek's avatar
Andreas Marek committed
96
.br
97 98
The interface \fBelpa_solve_evp_complex\fP(3) is a more flexible alternative.
.br
Andreas Marek's avatar
Andreas Marek committed
99
.SH "SEE ALSO"
100
\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\fP(3) \fBelpa2_print_kernels\fP(1)