  Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits   elpa_solve_evp_real_2stage_double(3) FreeBSD Library Functions Manual elpa_solve_evp_real_2stage_double(3)

NAME

elpa_solve_evp_real_2stage_double - solve the double-precision real eigenvalue problem with the 2-stage ELPA solver (legacy interface)

SYNOPSIS

FORTRAN INTERFACE

use elpa1 use elpa2

success = elpa_solve_evp_real_2stage_double (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, useGPU)

With the definitions of the input and output variables:

integer, intent(in) na: global dimension of quadratic matrix a to solve

integer, intent(in) nev: number of eigenvalues to be computed; the first nev eigenvalules are calculated

real*8, intent(inout) a: locally distributed part of the matrix a. The local dimensions are lda x matrixCols

integer, intent(in) lda: leading dimension of locally distributed matrix a

real*8, intent(inout) ev: on output the first nev computed eigenvalues

real*8, intent(inout) q: on output the first nev computed eigenvectors

integer, intent(in) ldq: leading dimension of matrix q which stores the eigenvectors

integer, intent(in) nblk: blocksize of block cyclic distributin, must be the same in both directions

integer, intent(in) matrixCols: number of columns of locally distributed matrices a and q

integer, intent(in) mpi_comm_rows: communicator for communication in rows. Constructed with elpa_get_communicators(3)

integer, intent(in) mpi_comm_cols: communicator for communication in colums. Constructed with elpa_get_communicators(3)

integer, intent(in) mpi_comm_all: communicator for all processes in the processor set involved in ELPA

integer, intent(in), optional THIS_ELPA_REAL_KERNEL: choose the compute kernel for 2-stage solver

logical, intent(in), optional: useQR: optional argument; switches to QR-decomposition if set to .true.

logical, intent(in), optional: useGPU: decide whether GPUs should be used or not

logical success: return value indicating success or failure

C INTERFACE

#include "elpa_legacy.h"

success = elpa_solve_evp_real_2stage_double (int na, int nev, double *a, int lda, double *ev, double *q, int ldq, int nblk, int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int mpi_comm_all, int THIS_ELPA_REAL_KERNEL, int useQR, int useGPU);

With the definitions of the input and output variables:

int na: global dimension of quadratic matrix a to solve

int nev: number of eigenvalues to be computed; the first nev eigenvalules are calculated

double * a: pointer to locally distributed part of the matrix a. The local dimensions are lda x matrixCols

int lda: leading dimension of locally distributed matrix a

double * ev: pointer to memory containing on output the first nev computed eigenvalues

double * q: pointer to memory containing on output the first nev computed eigenvectors

int ldq: leading dimension of matrix q which stores the eigenvectors

int nblk: blocksize of block cyclic distributin, must be the same in both directions

int matrixCols: number of columns of locally distributed matrices a and q

int mpi_comm_rows: communicator for communication in rows. Constructed with elpa_get_communicators(3)

int mpi_comm_cols: communicator for communication in colums. Constructed with elpa_get_communicators(3)

int mpi_comm_all: communicator for all processes in the processor set involved in ELPA

int THIS_ELPA_REAL_KERNEL: choose the compute kernel for 2-stage solver

int useQR: if set to 1 switch to QR-decomposition

int useGPU: decide whether GPUs should be used or not

int success: return value indicating success (1) or failure (0)

DESCRIPTION

Solve the real eigenvalue problem with the 2-stage solver. The ELPA communicators mpi_comm_rows and mpi_comm_cols are obtained with the elpa_get_communicators(3) function. The distributed quadratic marix a has global dimensions na x na, and a local size lda x matrixCols. The solver will compute the first nev eigenvalues, which will be stored on exit in ev. The eigenvectors corresponding to the eigenvalues will be stored in q. All memory of the arguments must be allocated outside the call to the solver.

The interface elpa_solve_evp_real(3) is a more flexible alternative.

This function is part of the legacy API of the ELPA library. Better use the current API. Visit the GSP FreeBSD Man Page Interface.