elpa_skew_eigenvectors - Man Page

computes the eigenvalues and (part of) the eigenvector spectrum for a real skew-symmetric matrix

Synopsis

Fortran Interface

use elpa
class(elpa_t), pointer :: elpa

call elpa%skew_eigenvectors (a, ev, q, error)

With the definitions of the input and output variables:

class(elpa_t) :: elpa

An instance of the ELPA object

datatype :: a

The matrix a for which the eigenvalues and eigenvectors 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 can be one of "real(kind=c_double)" or "real(kind=c_float)". The matrix has to be skew-symmetric, this is not checked by the routine.

datatype :: ev

The vector ev where the eigenvalues will be stored in ascending 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.

datatype :: q

The storage space for the computed eigenvectors. The number of requested eigenpairs must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The number of requested eigenvectors must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype can be one of "complex(kind=c_double)" or "complex(kind=c_float)". Note, that for a skew-symmetric matrix the eigenvectors are complex. The routine returns separately the real and imaginary parts of the complex eigenvectors. Thus, the storage space has to be of dimension q(#number_of_rows, 2*#number_of_columns).

integer, optional :: error

The return error code of the function. Should be "ELPA_OK". The error code can be queried with the function fB elpa_strerr(3)

C Interface

#include <elpa/elpa.h>
elpa_t handle;

void elpa_eigenvalues(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 and eigenvectors should be computed. The dimensions of the matrix must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype can be "double" or "float". The matrix has to be symmetric or hermitian, this is not checked by the routine.

datatype *ev;

The storage for the computed eigenvalues. Eigenvalues will be stored in ascending order. The datatype can be either "double" or "float".

datatype *q;

The storage space for the computed eigenvectors. The number of requested eigenvectors must be set BEFORE with the methods elpa_set(3) and elpa_setup(3). The datatype can "double complex" or "float complex". Note, that for a skew-symmetric matrix the eigenvectors are complex. The routine returns separately the real and imaginary parts of the complex eigenvectors. Thus, the storage space has to be of dimension q(#number_of_rows, 2*#number_of_columns).

int *error;

The error code of the function. Should be "ELPA_OK". The error codes can be queried with elpa_strerr(3).

Description

Computes the eigenvalues and (part of) the eigenvector spectrum of a real symmetric or complex hermitian matrix. The functions elpa_init(3), elpa_allocate(3), elpa_set(3), and elpa_setup(3) must be called BEFORE elpa_skew_eigenvectors can be called. In particular, the number of the requested eigenpairs, "nev", must 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_eigenvectors(3) elpa_cholesky(3) elpa_invert_triangular(3) elpa_solve_tridiagonal(3) elpa_hermitian_multiply(3) elpa_uninit(3) elpa_deallocate(3)

Referenced By

elpa_eigenvalues(3), elpa_eigenvalues_double(3), elpa_eigenvalues_double_complex(3), elpa_eigenvalues_float(3), elpa_eigenvalues_float_complex(3), elpa_eigenvectors(3), elpa_eigenvectors_double(3), elpa_eigenvectors_double_complex(3), elpa_eigenvectors_float(3), elpa_eigenvectors_float_complex(3), elpa_skew_eigenvalues(3).

Wed Aug 9 2023 ELPA