elpa_eigenvectors_double_complex - Man Page
computes the eigenvalues and (part of) the eigenvector spectrum for a complex hermitian matrix
Synopsis
Fortran Interface
use elpa
class(elpa_t), pointer :: elpa
call elpa%eigenvectors_double_complex (a, ev, q, error)
With the definitions of the input and output variables:
class(elpa_t) :: elpa ! returns an instance of the ELPA object
- datatype :: a
The matrix a for which the eigenvalues should be computed. The dimensions of matrix a must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype of the matrix must be "complex(kind=c_double_complex)". The matrix has to be hermitian, this is not checked by the routine. In case of a GPU build a can be a device pointer to a matrix a on the device memory.
- datatype :: ev
The vector ev where the eigenvalues will be stored in ascending order. The datatype of the vector ev must be "real(kind=c_double)". In case of a GPU build ev can be a device pointer to the vectors of eigenvalues in the device memory.
- datatype :: q
The storage space for the computed eigenvectors. The dimensions of matrix a must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype of the matrix must be "complex(kind=c_double_complex)". In case of a GPU build q can be a device pointer to a matrix q on the device memory.
- integer, optional :: error
The return error code of the function. Should be "ELPA_OK". The error code can be querried with the function elpa_strerr(3)
C Interface
#include <elpa/elpa.h>
elpa_t handle;
void elpa_eigenvectors_double_complex(elpa_t handle, datatype *a, datatype *ev, datatype *q, int *error);
With the definitions of the input and output variables:
- elpa_t handle;
The handle to the ELPA object
- datatype *a;
The matrix a for which the eigenvalues should be computed. The dimensions of the matrix must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype must be "double complex". The matrix has to be hermitian, this is not checked by the routine. In case of a GPU build a can be a device pointer to a matrix a on the device memory.
- datatype *ev;
The storage for the computed eigenvalues. Eigenvalues will be stored in ascendig order. The datatype must be "double". In case of a GPU build ev can be a device pointer to the vectors of eigenvalues in the device memory.
- datatype *q;
The storage space for the computed eigenvectors. The dimensions of the matrix must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype must be one of "double complex". In case of a GPU build q can be a device pointer to a matrix q on the device memory.
- int *error;
The error code of the function. Should be "ELPA_OK". The error codes can be querried with elpa_strerr(3)
Description
Compute the eigenvalues and (parts of) the eigenvector spectrum of a complex hermitian double precision matrix.The functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_eigenvalues can be called. Especially the number of eigenvectors to be computed can be set with elpa_set(3)
See Also
elpa2_print_kernels(1) elpa_init(3) elpa_allocate(3) elpa_set(3) elpa_setup(3) elpa_strerr(3) elpa_eigenvalues(3) elpa_skew_eigenvalues(3) elpa_skew_eigenvectors(3) elpa_cholesky(3) elpa_invert_triangular(3) elpa_solve_tridiagonal(3) elpa_hermitian_multiply(3) elpa_uninit(3) elpa_deallocate(3)