Commit 58fd9be0 authored by Pavel Kus's avatar Pavel Kus

generalized evp documentation started

parent a0ceda61
......@@ -448,6 +448,7 @@ dist_man_MANS = \
man/elpa_setup.3 \
man/elpa_eigenvalues.3 \
man/elpa_eigenvectors.3 \
man/elpa_generalized_eigenvectors.3 \
man/elpa_cholesky.3 \
man/elpa_invert_triangular.3 \
man/elpa_solve_tridiagonal.3 \
......
.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
.RI "call elpa%\fBgeneralized_eigenvectors\fP (a, b, ev, q, sc_desc, is_already_decomopsed, error)"
.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"
The matrix b defining the generalized eigenvalue problem. The dimensions and datatype fo the matrix has to be the same as for matrix a.
.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.
.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)"
.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
.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
Compute the 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_eigenvalues\fP can be called. Especially the number of eigenvectors to be computed can be set with \fPelpa_set\fB(3)
.br
.SH "SEE ALSO"
.br
\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_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)
......@@ -1503,6 +1503,11 @@ module elpa_impl
!> The full matrix must be set (not only one half like in scalapack).
!> Destroyed on exit (upper and lower half).
!>
!> \param b Distributed matrix, part of the generalized eigenvector problem, or the
!> product of a previous call to this function (see is_already_decomposed).
!> Distribution is like in Scalapack.
!> If is_already_decomposed is false, on exit replaced by the decomposition
!>
!> \param ev On output: eigenvalues of a, every processor gets the complete set
!>
!> \param q On output: Eigenvectors of a
......@@ -1510,6 +1515,12 @@ module elpa_impl
!> Must be always dimensioned to the full size (corresponding to (na,na))
!> even if only a part of the eigenvalues is needed.
!>
!> \param sc_desc scalapack descriptor
!>
!> \param is_already_decomposed 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
!>
!> \param error integer, optional: returns an error code, which can be queried with elpa_strerr
subroutine elpa_generalized_eigenvectors_d(self, a, b, ev, q, sc_desc, is_already_decomposed, error)
use elpa2_impl
......@@ -1615,6 +1626,11 @@ module elpa_impl
!> The full matrix must be set (not only one half like in scalapack).
!> Destroyed on exit (upper and lower half).
!>
!> \param b Distributed matrix, part of the generalized eigenvector problem, or the
!> product of a previous call to this function (see is_already_decomposed).
!> Distribution is like in Scalapack.
!> If is_already_decomposed is false, on exit replaced by the decomposition
!>
!> \param ev On output: eigenvalues of a, every processor gets the complete set
!>
!> \param q On output: Eigenvectors of a
......@@ -1622,6 +1638,12 @@ module elpa_impl
!> Must be always dimensioned to the full size (corresponding to (na,na))
!> even if only a part of the eigenvalues is needed.
!>
!> \param sc_desc scalapack descriptor
!>
!> \param is_already_decomposed 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
!>
!> \param error integer, optional: returns an error code, which can be queried with elpa_strerr
subroutine elpa_generalized_eigenvectors_f(self, a, b, ev, q, sc_desc, is_already_decomposed, error)
use elpa2_impl
......@@ -1732,6 +1754,11 @@ module elpa_impl
!> The full matrix must be set (not only one half like in scalapack).
!> Destroyed on exit (upper and lower half).
!>
!> \param b Distributed matrix, part of the generalized eigenvector problem, or the
!> product of a previous call to this function (see is_already_decomposed).
!> Distribution is like in Scalapack.
!> If is_already_decomposed is false, on exit replaced by the decomposition
!>
!> \param ev On output: eigenvalues of a, every processor gets the complete set
!>
!> \param q On output: Eigenvectors of a
......@@ -1739,6 +1766,12 @@ module elpa_impl
!> Must be always dimensioned to the full size (corresponding to (na,na))
!> even if only a part of the eigenvalues is needed.
!>
!> \param sc_desc scalapack descriptor
!>
!> \param is_already_decomposed 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
!>
!> \param error integer, optional: returns an error code, which can be queried with elpa_strerr
subroutine elpa_generalized_eigenvectors_dc(self, a, b, ev, q, sc_desc, is_already_decomposed, error)
use elpa2_impl
......@@ -1846,6 +1879,11 @@ module elpa_impl
!> The full matrix must be set (not only one half like in scalapack).
!> Destroyed on exit (upper and lower half).
!>
!> \param b Distributed matrix, part of the generalized eigenvector problem, or the
!> product of a previous call to this function (see is_already_decomposed).
!> Distribution is like in Scalapack.
!> If is_already_decomposed is false, on exit replaced by the decomposition
!>
!> \param ev On output: eigenvalues of a, every processor gets the complete set
!>
!> \param q On output: Eigenvectors of a
......@@ -1853,6 +1891,12 @@ module elpa_impl
!> Must be always dimensioned to the full size (corresponding to (na,na))
!> even if only a part of the eigenvalues is needed.
!>
!> \param sc_desc scalapack descriptor
!>
!> \param is_already_decomposed 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
!>
!> \param error integer, optional: returns an error code, which can be queried with elpa_strerr
subroutine elpa_generalized_eigenvectors_fc(self, a, b, ev, q, sc_desc, is_already_decomposed, error)
use elpa2_impl
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment