1elpa_solve_evp_complex_doublLei(b3r)ary Functions Maenlupaal_solve_evp_complex_double(3)
2
3
4
6 elpa_solve_evp_complex_double - solve the complex eigenvalue problem
7 with either the 1-satge or the 2-stage ELPA solver (legacy interface)
8
9
11 FORTRAN INTERFACE
12 use elpa_driver
13 success = elpa_solve_evp_complex_double (na, nev, a(lda,matrixCols),
14 ev(nev), q(ldq, matrixCols), ldq, nblk, matrixCols, mpi_comm_rows,
15 mpi_comm_cols, mpi_comm_all, THIS_COMPLEX_ELPA_KERNEL, useGPU, method)
16
17 With the definitions of the input and output variables:
18
19 integer, intent(in) na: global
20 dimension of quadratic matrix a to solve
21 integer, intent(in) nev: number of
22 eigenvalues to be computed; the first nev eigenvalules are calculated
23 complex*16, intent(inout) a: locally
24 distributed part of the matrix a. The local dimensions are lda x
25 matrixCols
26 integer, intent(in) lda: leading
27 dimension of locally distributed matrix a
28 real*8, intent(inout) ev: on output the
29 first nev computed eigenvalues
30 complex*16, intent(inout) q: on output the
31 first nev computed eigenvectors
32 integer, intent(in) ldq: leading
33 dimension of matrix q which stores the eigenvectors
34 integer, intent(in) nblk: blocksize of
35 block cyclic distributin, must be the same in both directions
36 integer, intent(in) matrixCols: number of
37 columns of locally distributed matrices a and q
38 integer, intent(in) mpi_comm_rows: communicator
39 for communication in rows. Constructed with elpa_get_communicators(3)
40 integer, intent(in) mpi_comm_cols: communicator
41 for communication in colums. Constructed with elpa_get_communicators(3)
42 integer, intent(in) mpi_comm_all: communicator
43 for all processes in the processor set involved in ELPA
44 int THIS_ELPA_COMPLEX_KERNEL: choose the
45 compute kernel for 2-stage solver
46 logical, optional, intent(in) useGPU: specify whether
47 GPUs should be used or not used
48 character(*), optional method: use 1stage
49 solver if
50 1stage",use2stagesolverif2stage,(atthemoment)use2stagesolverifauto
51
52 logical success: return value
53 indicating success or failure
54
55 C INTERFACE
56 #include "elpa_legacy.h"
57 #include <complex.h>
58
59 success = elpa_solve_evp_complex_double (int na, int nev, double
60 complex *a, int lda, double *ev, double complex *q, int ldq, int nblk,
61 int matrixCols, int mpi_comm_rows, int mpi_comm_cols, int mpi_comm_all,
62 int THIS_ELPA_COMPLEX_KERNEL, int useGPU, char *method);
63
64 With the definitions of the input and output variables:
65
66 int na: global dimension of quadratic
67 matrix a to solve
68 int nev: number of eigenvalues to be
69 computed; the first nev eigenvalules are calculated
70 double complex *a: pointer to locally
71 distributed part of the matrix a. The local dimensions are lda x
72 matrixCols
73 int lda: leading dimension of locally
74 distributed matrix a
75 double *ev: pointer to memory containing
76 on output the first nev computed eigenvalues
77 double complex *q: pointer to memory containing
78 on output the first nev computed eigenvectors
79 int ldq: leading dimension of matrix q
80 which stores the eigenvectors
81 int nblk: blocksize of block cyclic
82 distributin, must be the same in both directions
83 int matrixCols: number of columns of locally
84 distributed matrices a and q
85 int mpi_comm_rows: communicator for
86 communication in rows. Constructed with elpa_get_communicators(3)
87 int mpi_comm_cols: communicator for
88 communication in colums. Constructed with elpa_get_communicators(3)
89 int mpi_comm_all: communicator for all
90 processes in the processor set involved in ELPA
91 int THIS_ELPA_COMPLEX_KERNEL: choose the compute kernel for
92 2-stage solver
93 int useGPU: specify whether GPUS should
94 be used or not
95 char *method: use 1stage solver if
96 1stage",use2stagesolverif2stage,(atthemoment)use2stagesolverifauto
97
98 int success: return value indicating
99 success (1) or failure (0)
100
101
103 Solve the complex eigenvalue problem. The value of method desides
104 whether the 1stage or 2stage solver is used. The ELPA communicators
105 mpi_comm_rows and mpi_comm_cols are obtained with the
106 elpa_get_communicators(3) function. The distributed quadratic marix a
107 has global dimensions na x na, and a local size lda x matrixCols. The
108 solver will compute the first nev eigenvalues, which will be stored on
109 exit in ev. The eigenvectors corresponding to the eigenvalues will be
110 stored in q. All memory of the arguments must be allocated outside the
111 call to the solver.
112 This function is part of the legacy API of the ELPA library. Better use
113 the current API.
114
116 Old interface: elpa_get_communicators(3) elpa_solve_evp_real_double(3)
117 elpa_solve_evp_real_single(3) elpa_solve_evp_complex_single(3)
118 Current interface: elpa2_print_kernels(1)
119
120
121
122ELPA Wed May 17 2017elpa_solve_evp_complex_double(3)