elpa_generalized_eigenvectors.3 4.68 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.TH "elpa_generalized_eigenvectors" 3 "Thu Feb 1 2018" "ELPA" \" -*- nroff -*-
.ad l
.nh
.SH NAME
elpa_generalized_eigenvectors \- computes the generalized eigenvalues and (part of) the eigenvector spectrum for a real symmetric or complex hermitian matrix
.br

.SH SYNOPSIS
.br
.SS FORTRAN INTERFACE
use elpa
.br
class(elpa_t), pointer :: elpa
.br

Pavel Kus's avatar
Pavel Kus committed
16
.RI  "call elpa%\fBgeneralized_eigenvectors\fP (a, b, ev, q, is_already_decomopsed, error)"
17
18
19
20
21
22
23
24
25
26
27
28
29
.br
.RI " "
.br
.RI "With the definitions of the input and output variables:"

.br
.RI "class(elpa_t) :: \fBelpa\fP  ! returns an instance of the ELPA object"
.br
.TP
.RI "datatype :: \fBa\fP"
The matrix a for which the eigenvalues should be computed. The dimensions of matrix a must be set \fIBEFORE\fP with the methods \fBelpa_set\fP(3) and \fBelpa_setup\fP(3). The datatype of the matrix can be one of "real(kind=c_double)", "real(kind=c_float)", "complex(kind=c_double)", or "complex(kind=c_float)"
.TP
.RI "datatype :: \fBb\fP"
Pavel Kus's avatar
Pavel Kus committed
30
The matrix b defining the generalized eigenvalue problem. The dimensions and datatype of the matrix b has to be the same as for matrix a.
31
32
33
.TP
.RI "datatype :: \fBev\fP"
The vector ev where the eigenvalues will be stored in \fIascending\fP order. The datatype of the vector ev can be either "real(kind=c_double)", or "real(kind=c_float)", depending of the datatype of the matrix. Note that complex hermitian matrices also have real valued eigenvalues.
Pavel Kus's avatar
Pavel Kus committed
34
.TP
35
36
.RI "datatype :: \fBq\fP"
The storage space for the computed eigenvectors. The dimensions of matrix a must be set \fIBEFORE\fP with the methods \fBelpa_set\fP(3) and \fBelpa_setup\fP(3). The datatype of the matrix can be one of "real(kind=c_double)", "real(kind=c_float)", "complex(kind=c_double)", or "complex(kind=c_float)"
Pavel Kus's avatar
Pavel Kus committed
37
38
39
40
41
42
.TP
.RI "logical :: \fBis_already_decomposed\fP"
Has to be set to .false. for the first call with a given b and .true. for
each subsequent call with the same b, since b then already contains
decomposition and thus the decomposing step is skipped.

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.TP
.RI "integer, optional :: \fBerror\fP"
The return error code of the function. Should be "ELPA_OK". The error code can be querried with the function \fBelpa_strerr\fP(3)

.br
.SS C INTERFACE
#include <elpa/elpa.h>
.br
elpa_t handle;

.br
.RI "void \fBelpa_eigenvalues\fP(\fBelpa_t\fP handle, \fBdatatype\fP *a, \fBdatatype\fP *ev, \fBdatatype\fP *q, \fBint\fP *error);"
.br
.RI " "
.br
.RI "With the definitions of the input and output variables:"

.br
.TP
.RI "elpa_t \fBhandle\fP;"
The handle to the ELPA object
.TP
.RI "datatype *\fBa\fP;"
The matrix a for which the eigenvalues should be computed. The dimensions of the matrix must be set \fIBEFORE\fP with the methods \fBelpa_set\fP(3) and \fBelpa_setup\fP(3). The \fBdatatype\fP can be one of "double", "float", "double complex", or "float complex".
.TP
.RI "datatype *\fBev\fP;"
The storage for the computed eigenvalues. Eigenvalues will be stored in \fIascendig\fP order. The \fBdatatype\fP can be either "double" or "float". Note that the eigenvalues of complex hermitian matrices are also real.
.TP
.RI "datatype *\fBq\fP;"
The storage space for the computed eigenvectors. The dimensions of the matrix must be set \fIBEFORE\fP with the methods \fBelpa_set\fP(3) and \fBelpa_setup\fP(3). The \fBdatatype\fP can be one of "double", "float", "double complex", or "float complex".
.TP
Pavel Kus's avatar
Pavel Kus committed
74
75
76
77
78
.RI "int \fBis_already_decomposed\fP;"
Has to be set to 0 for the first call with a given b and 1 for
each subsequent call with the same b, since b then already contains
decomposition and thus the decomposing step is skipped.
.TP
79
80
81
82
.RI "int *\fBerror\fP;"
The error code of the function. Should be "ELPA_OK". The error codes can be querried with \fBelpa_strerr\fP(3)

.SH DESCRIPTION
Pavel Kus's avatar
Pavel Kus committed
83
Compute the generalized eigenvalues and (parts of) the eigenvector spectrum of a real symmtric or complex hermitian matrix.The functions \fBelpa_init\fP(3), \fBelpa_allocate\fP(3), \fBelpa_set\fP(3), and \fBelpa_setup\fP(3) must be called \fIBEFORE\fP \fBelpa_generalized_eigenvalues\fP can be called. Especially the number of eigenvectors to be computed can be set with \fPelpa_set\fB(3). Unlike in the case of ordinary eigenvalue problem, the generalized problem calls some external scalapack routines. The user is responsible for initialization of the blacs context, which then has to be passed to elpa by \fPelpa_set\fB(3) \fIBEFORE\fP \fBelpa_generalized_eigenvalues\fP can be called.
84
85
86
.br
.SH "SEE ALSO"
.br
Pavel Kus's avatar
Pavel Kus committed
87
\fBelpa2_print_kernels\fP(1) \fBelpa_init\fP(3) \fBelpa_allocate\fP(3) \fBelpa_set\fP(3) \fBelpa_setup\fP(3) \fBelpa_strerr\fP(3) \fBelpa_eigenvalues\fP(3) \fBelpa_eigenvectors\fP(3) \fBelpa_cholesky\fP(3) \fBelpa_invert_triangular\fP(3) \fBelpa_solve_tridiagonal\fP(3) \fBelpa_hermitian_multiply\fP(3) \fBelpa_uninit\fP(3) \fBelpa_deallocate\fP(3)