elpa_solve_tridi.3 4 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
.TH "elpa_solve_tridi" 3 "Wed Jun 29 2016" "ELPA" \" -*- nroff -*-
.ad l
.nh
.SH NAME
elpa_solve_tridi \- Solve tridiagonal eigensystem with divide and conquer method
.br

.SH SYNOPSIS
.br
.SS FORTRAN INTERFACE
use elpa1
.br
.br
.RI  "success = \fBelpa_solve_trid\fP (na, nev, d(na), e(na), q(ldq,matrixCols), ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, wantDebug)"
.br
.RI " "
.br
.RI "With the definintions of the input and output variables:"

.br
.RI "integer, intent(in)    \fBna\fP:            global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "integer, intent(in)    \fBnev\fP:           number of eigenvalues/vectors to be computed"
.br
.RI "real*8,  intent(inout) \fBd(na)\fP:         array d(na) on input diagonal elements of tridiagonal matrix, on output the eigenvalues in ascending order"
.br
.RI "real*8,  intent(in)    \fBe(na)\fP:         array e(na) on input subdiagonal elements of matrix, on exit destroyed"
.br
.RI "real*8,  intent(inout) \fBq\fP:             on exit \fBq\fP contains the eigenvectors. The local dimensions are \fBldq\fP x \fBmatrixCols\fP"
.br
.RI "integer, intent(in)    \fBldq\fP:           leading dimension of locally distributed matrix \fBq\fP"
.br
.RI "integer, intent(in)    \fBnblk\fP:          blocksize of cyclic distribution, must be the same in both directions"
.br
.RI "integer, intent(in)    \fBmatrixCols\fP:    number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br
.RI "integer, intent(in)    \fBmpi_comm_rows\fP: communicator for communication in rows. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "integer, intent(in)    \fBmpi_comm_cols\fP: communicator for communication in colums. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "logical, intent(in)    \fBwantDebug\fP:     if .true. , print more debug information in case of an error"

.RI "logical                \fBsuccess\fP:       return value indicating success or failure"
.br
.SS C INTERFACE
#include "elpa.h"

.br
.RI "\fBint\fP success = \fBelpa_solve_tridi\fP (\fBint\fP na, \fBint\fP nev, \fB double *\fPd,\fB double *\fPe ,\fB double *\fPq, \fBint\fP ldq, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP wantDebug );"
.br
.RI " "
.br
.RI "With the definintions of the input and output variables:"

.br
.RI "int     \fBna\fP:            global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "int     \fBnev\fP:           number of eigenvalues/eigenvectors to be computed"
.br
.RI "double *\fBd\fP:             pointer to array d(na) on input diagonal elements of tridiagonal matrix, on output the eigenvalues in ascending order"
.br
.RI "double *\fBe\fP:             pointer to array e(na) on input subdiagonal elements of matrix, on exit destroyed"
.br
.RI "double *\fBq\fP:             on exit \fBq\fP contains the eigenvectors. The local dimensions are \fBldq\fP x \fBmatrixCols\fP"
.br
.RI "int     \fBldq\fP:           leading dimension of locally distributed matrix \fBq\fP"
.br
.RI "int     \fBnblk\fP:          blocksize of block cyclic distributin, must be the same in both directions"
.br
.RI "int     \fBmatrixCols\fP:    number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br
.RI "int     \fBmpi_comm_rows\fP: communicator for communication in rows. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "int     \fBmpi_comm_cols\fP: communicator for communication in colums. Constructed with \fBget_elpa_communicators\fP(3)"
.br
.RI "int     \fBwantDebug\fP:     if 1, print more debug information in case of an error"
.br

.RI "int     \fBsuccess\fP:       return value indicating success (1) or failure (0)

.SH DESCRIPTION
Solves a tri-diagonal matrix and returns \fBnev\fP eigenvalues/eigenvectors. The ELPA communicators \fBmpi_comm_rows\fP and \fBmpi_comm_cols\fP are obtained with the \fBget_elpa_communicators\fP(3) function. The distributed quadratic marix \fBq\fP has global dimensions \fBna\fP x \fBna\fP, and a local size \fBldq\fP x \fBmatrixCols\fP.
.br
.SH "SEE ALSO"
\fBget_elpa_communicators\fP(3)