General type containing the ARPACK configuration.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | mode | mode of the solver |
|||
integer, | public | :: | ido | reverse communication flag |
|||
character(len=1), | private | :: | bmat | type of the matrix B ("I" = unit matrix, "G" = general matrix) |
|||
integer, | private | :: | evpdim | dimension of the eigenvalue problem |
|||
character(len=2), | private | :: | which | which eigenvalues to calculate |
|||
integer, | private | :: | nev | number of eigenvalues to calculate |
|||
real(kind=dp), | private | :: | tolerance | stopping criteria, relative accuracy of Ritz eigenvalues |
|||
complex(kind=dp), | public, | allocatable | :: | residual(:) | residual vector |
||
integer, | private | :: | ncv | indicates how many Arnoldi vectors are generated each iteration |
|||
integer, | public | :: | iparam(11) | integer array containing mode and parameters |
|||
integer, | private | :: | lworkl | length of workl array, must be at least 3 * ncv**2 + 5 * ncv |
|||
integer, | public | :: | info | info parameter |
|||
integer, | private | :: | maxiter | maximum number of iterations |
Getter for dimension of eigenvalue problem.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(in) | :: | this | type instance |
Getter for tolerance (relative accuracy) to indicate eigenvalue convergence.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(in) | :: | this | type instance |
Getter for maximum number of iterations.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(in) | :: | this | type instance |
Getter for length of workl array, returns 3 * ncv**2 + 5 * ncv
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(in) | :: | this | type instance |
Parses the info parameter that comes out of ARPACK's znaupd method. If info = 0, everything behaved nicely and the reverse communication subroutines exited properly. If info is any other value something went wrong and we handle it accordingly.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(in) | :: | this | reference to type object |
||
logical, | intent(out) | :: | converged | if .true. the reverse communication routines converged, .false. otherwise |
Parses the info parameter that comes out of ARPACK's zneupd method. If info = 0, the eigenvalues extraction routines exited properly, if info is any other value something went wrong and we handle it accordingly.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(in) | :: | this | reference to type object |
Parses the statistics that come out of ARPACK when the run is finished. Displays the number of OPX and BX operations and the number of re-orthogonalisation steps that were needed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(in) | :: | this | type instance |
Setter for the residual vector, allocates and manually initialises the
residual (= starting) vector using a uniform distribution on (-1, 1)
for both the real and imaginary parts. Relies on the LAPACK routine zlarnv
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(inout) | :: | this | type instance |
||
integer, | intent(in) | :: | evpdim | dimension of the eigenvalue problem |
Setter for ncv, the number of Arnoldi basis vectors to calculate. This should satisfy 1 <= ncv - nev and ncv <= evpdim, with recommended value ncv = 2 * nev (see arpack docs).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(inout) | :: | this | type instance |
||
integer, | intent(in) | :: | ncv | value for ncv |
Sets the maximum number of iterations that ARPACK is allowed to take, defaults to max(100, 10 * k) with k the number of eigenvalues.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(arpack_t), | intent(inout) | :: | this | type instance |
||
integer, | intent(in) | :: | maxiter | maximum number of iterations |