solve_evp_real_2stage.3 5.48 KB
Newer Older
1
.TH "solve_evp_real_2stage" 3 "Tue Oct 18 2016" "ELPA" \" -*- nroff -*-
Andreas Marek's avatar
Andreas Marek committed
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
.ad l
.nh
.SH NAME
solve_evp_real_2stage \- solve the real eigenvalue problem with the 2-stage ELPA solver
.br

.SH SYNOPSIS
.br
.SS FORTRAN INTERFACE
use elpa1
use elpa2
.br
.br
.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_REAL_ELPA_KERNEL, useQr=useQR)"
.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 "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
40
.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
41
.br
42
.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
43
44
45
.br
.RI "integer, intent(in)            \fBmpi_comm_all\fP:  communicator for all processes in the processor set involved in ELPA"
.br
46
47
.RI "integer, intent(in), optional  \fBTHIS_ELPA_REAL_KERNEL\fp: choose the compute kernel for 2-stage solver"
.br
Andreas Marek's avatar
Andreas Marek committed
48
49
50
51
52
53
54
55
.RI "logical, intent(in), optional: \fBuseQR\fP:         optional argument; switches to QR-decomposition if set to .true."

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

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

.br
63
64
65
.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
66
.br
67
.RI "double *\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
68
.br
69
.RI "int     \fBlda\fP:                   leading dimension of locally distributed matrix \fBa\fP"
Andreas Marek's avatar
Andreas Marek committed
70
.br
71
.RI "double *\fBev\fP:                    pointer to memory containing on output the first \fBnev\fP computed eigenvalues"
Andreas Marek's avatar
Andreas Marek committed
72
.br
73
.RI "double *\fBq\fP:                     pointer to memory containing on output the first \fBnev\fP computed eigenvectors"
Andreas Marek's avatar
Andreas Marek committed
74
.br
75
.RI "int     \fBldq\fP:                   leading dimension of matrix \fBq\fP which stores the eigenvectors"
Andreas Marek's avatar
Andreas Marek committed
76
.br
77
.RI "int     \fBnblk\fP:                  blocksize of block cyclic distributin, must be the same in both directions"
Andreas Marek's avatar
Andreas Marek committed
78
.br
79
.RI "int     \fBmatrixCols\fP:            number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
Andreas Marek's avatar
Andreas Marek committed
80
.br
81
.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
82
.br
83
.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
84
.br
85
.RI "int     \fBmpi_comm_all\fP:          communicator for all processes in the processor set involved in ELPA"
Andreas Marek's avatar
Andreas Marek committed
86
.br
87
.RI "int     \fBTHIS_ELPA_REAL_KERNEL\fp: choose the compute kernel for 2-stage solver"
Andreas Marek's avatar
Andreas Marek committed
88
.br
89
.RI "int     \fBuseQR\fP:                 if set to 1 switch to QR-decomposition"
Andreas Marek's avatar
Andreas Marek committed
90

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

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