NAG CL Interface
f12adc (real_option)
Note: this function uses optional parameters to define choices in the problem specification. If you wish to use default
settings for all of the optional parameters, then this function need not be called. If, however, you wish to reset some or all of the settings please refer to Section 11 for a detailed description of the specification of the optional parameters.
1
Purpose
f12adc is an option setting function in a suite of functions consisting of
f12aac,
f12abc,
f12acc,
f12adc and
f12aec; it supplies individual optional parameters to
f12abc and
f12acc.
f12adc is also an option setting function in a suite of functions consisting of
f12adc,
f12afc and
f12agc; it supplies individual optional parameters to
f12agc.
The initialization function for the appropriate suite,
f12aac or
f12afc,
must have been called prior to calling
f12adc.
2
Specification
The function may be called by the names: f12adc, nag_sparseig_real_option or nag_real_sparse_eigensystem_option.
3
Description
f12adc may be used to supply values for optional parameters to
f12abc and
f12acc, or to
f12agc. It is only necessary to call
f12adc for those arguments whose values are to be different from their default values. One call to
f12adc sets one argument value.
Each optional parameter is defined by a single character string consisting of one or more items. The items associated with a given option must be separated by spaces, or equals signs
. Alphabetic characters may be upper or lower case. The string
Iteration Limit = 500
is an example of a string used to set an optional parameter. For each option the string contains one or more of the following items:
-
–a mandatory keyword;
-
–a phrase that qualifies the keyword;
-
–a number that specifies an Integer or double value. Such numbers may be up to contiguous characters in
C's d or g format.
f12adc does not have an equivalent function from the ARPACK package which passes options by directly setting values to scalar arguments or to specific elements of array arguments.
f12adc is intended to make the passing of options more transparent and follows the same principle as the single option setting functions in
Chapter E04.
The setup function
f12aac or
f12afc must be called prior to the first call to
f12adc, and all calls to
f12adc must precede the first call to
f12abc or
f12agc.
A complete list of optional parameters, their abbreviations, synonyms and default values is given in
Section 11.
4
References
Lehoucq R B (2001) Implicitly restarted Arnoldi methods and subspace iteration SIAM Journal on Matrix Analysis and Applications 23 551–562
Lehoucq R B and Scott J A (1996) An evaluation of software for computing eigenvalues of sparse nonsymmetric matrices Preprint MCS-P547-1195 Argonne National Laboratory
Lehoucq R B and Sorensen D C (1996) Deflation techniques for an implicitly restarted Arnoldi iteration SIAM Journal on Matrix Analysis and Applications 17 789–821
Lehoucq R B, Sorensen D C and Yang C (1998) ARPACK Users' Guide: Solution of Large-scale Eigenvalue Problems with Implicitly Restarted Arnoldi Methods SIAM, Philadelphia
5
Arguments
-
1:
– const char *
Input
-
On entry: a single valid option string (as described in
Section 3 and
Section 11).
-
2:
– Integer
Communication Array
-
Note: the actual argument supplied
must be the array
icomm supplied to the initialization routines
f12aac f12afc.
On initial entry: must remain unchanged following a call to the setup function
f12aac or
f12afc.
On exit: contains data on the current options set.
-
3:
– double
Communication Array
-
Note: the actual argument supplied
must be the array
comm supplied to the initialization routines
f12aac f12afc.
On initial entry: must remain unchanged following a call to the setup function
f12aac or
f12afc.
On exit: contains data on the current options set.
-
4:
– NagError *
Input/Output
-
The NAG error argument (see
Section 7 in the Introduction to the NAG Library CL Interface).
6
Error Indicators and Warnings
- NE_ALLOC_FAIL
-
Dynamic memory allocation failed.
See
Section 3.1.2 in the Introduction to the NAG Library CL Interface for further information.
- NE_BAD_PARAM
-
On entry, argument had an illegal value.
- NE_INITIALIZATION
-
Either the initialization function has not been called prior to the call of this function or a communication array has become corrupted.
- NE_INTERNAL_ERROR
-
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG for assistance.
See
Section 7.5 in the Introduction to the NAG Library CL Interface for further information.
- NE_INVALID_OPTION
-
Ambiguous keyword:
Keyword not recognized:
Second keyword not recognized:
- NE_NO_LICENCE
-
Your licence key may have expired or may not have been installed correctly.
See
Section 8 in the Introduction to the NAG Library CL Interface for further information.
7
Accuracy
Not applicable.
8
Parallelism and Performance
Background information to multithreading can be found in the
Multithreading documentation.
f12adc is not threaded in any implementation.
None.
10
Example
This example solves in shifted-inverse mode, where and are derived from the finite element discretization of the one-dimensional convection-diffusion operator
on the interval , with zero Dirichlet boundary conditions.
The shift is a real number, and the operator used in the shifted-inverse iterative process is .
10.1
Program Text
10.2
Program Data
10.3
Program Results
11
Optional Parameters
Several optional parameters for the computational suite functions
f12abc and
f12acc, and for the banded driver
f12agc, define choices in the problem specification or the algorithm logic. In order to reduce the number of formal arguments of
f12abc,
f12acc and
f12agc these optional parameters have associated
default values that are appropriate for most problems. Therefore, you need only specify those optional parameters whose values are to be different from their default values.
The remainder of this section can be skipped if you wish to use the default values for all optional parameters.
The following is a list of the optional parameters available. A full description of each optional parameter is provided in
Section 11.1.
Optional parameters may be specified by calling
f12adc before a call to
f12abc or
f12agc, but after a corresponding call to
f12aac or
f12afc. One call is necessary for each optional parameter. Any optional parameters you do not specify are set to their default values. Optional parameters you do specify are unaltered by
f12abc,
f12acc and
f12agc (unless they define invalid values) and so remain in effect for subsequent calls unless you alter them.
11.1
Description of the Optional Parameters
For each option, we give a summary line, a description of the optional parameter and details of constraints.
The summary line contains:
- the keywords, where the minimum abbreviation of each keyword is underlined;
- a parameter value,
where the letters , and denote options that take character, integer and real values respectively;
- the default value, where the symbol is a generic notation for machine precision (see X02AJC).
Keywords and character values are case and white space insensitive.
Optional parameters used to specify files (e.g.,
and
) have type Nag_FileID. This ID value must either be set to
(the default value) in which case there will be no output, or will be as returned by a call of
x04acc.
(See
Section 3.1.1 in the Introduction to the NAG Library CL Interface for further information on NAG data types.)
Advisory messages are output to Nag_FileID during the solution of the problem.
This special keyword may be used to reset all optional parameters to their default values.
During the Arnoldi iterative process, shifts are applied internally as part of the implicit restarting scheme. The shift strategy used by default and selected by the
is strongly recommended over the alternative
(see
Lehoucq et al. (1998) for details of shift strategies).
If are used then these are computed internally by the algorithm in the implicit restarting scheme.
If
are used then, during the Arnoldi iterative process, you must supply shifts through array arguments of
f12abc when
f12abc returns with
; the real and imaginary parts of the shifts are supplied in
y and
mx respectively.
This option should only be used if you are an experienced user since this requires some algorithmic knowledge and because more operations are usually required than for the implicit shift scheme. Details on the use of explicit shifts and further references on shift strategies are available in
Lehoucq et al. (1998).
Iteration Limit | |
Default
|
The limit on the number of Arnoldi iterations that can be performed before
f12abc or
f12agc exits. If not all requested eigenvalues have converged to within
and the number of Arnoldi iterations has reached this limit then
f12abc or
f12agc exits with an error;
f12agc returns the number of converged eigenvalues, the converged eigenvalues and, if requested, the corresponding eigenvectors, while
f12acc can be called subsequent to
f12abc to do the same.
Largest Magnitude | | Default |
The Arnoldi iterative method converges on a number of eigenvalues with given properties. The default is for
f12abc or
f12agc to compute the eigenvalues of largest magnitude using
. Alternatively, eigenvalues may be chosen which have
part,
part,
,
part or
part.
Note that these options select the eigenvalue properties for eigenvalues of (and for problems), the linear operator determined by the computational mode and problem type.
Optional parameter enables printing of each optional parameter specification as it is supplied. suppresses this printing.
(See
Section 3.1.1 in the Introduction to the NAG Library CL Interface for further information on NAG data types.)
Unless
is set to
(the default), monitoring information is output to Nag_FileID
during the solution of each problem; this may be the same as
. The type of information produced is dependent on the value of
, see the description of the optional parameter
in this section for details of the information produced. Please see
x04acc to associate a file with a given Nag_FileID.
This controls the amount of printing produced by
f12adc as follows.
|
Output |
|
No output except error messages. |
|
The set of selected options. |
|
Problem and timing statistics on final exit from f12abc or f12agc. |
|
A single line of summary output at each Arnoldi iteration. |
|
If
is set,
then at each iteration, the length and additional steps of the current Arnoldi factorization and the number of converged Ritz values; during re-orthogonalization, the norm of initial/restarted starting vector. |
|
Problem and timing statistics on final exit from f12abc. If
is set,
then at each iteration, the number of shifts being applied, the eigenvalues and estimates of the Hessenberg matrix , the size of the Arnoldi basis, the wanted Ritz values and associated Ritz estimates and the shifts applied; vector norms prior to and following re-orthogonalization. |
|
If
is set,
then on final iteration, the norm of the residual; when computing the Schur form, the eigenvalues and Ritz estimates both before and after sorting; for each iteration, the norm of residual for compressed factorization and the compressed upper Hessenberg matrix ; during re-orthogonalization, the initial/restarted starting vector; during the Arnoldi iteration loop, a restart is flagged and the number of the residual requiring iterative refinement; while applying shifts, the indices of the shifts being applied. |
|
If
is set,
then during the Arnoldi iteration loop, the Arnoldi vector number and norm of the current residual; while applying shifts, key measures of progress and the order of ; while computing eigenvalues of , the last rows of the Schur and eigenvector matrices; when computing implicit shifts, the eigenvalues and Ritz estimates of . |
|
If
is set,
then during Arnoldi iteration loop: norms of key components and the active column of , norms of residuals during iterative refinement, the final upper Hessenberg matrix ; while applying shifts: number of shifts, shift values, block indices, updated matrix ; while computing eigenvalues of : the matrix , the computed eigenvalues and Ritz estimates. |
To begin the Arnoldi iterative process,
f12abc or
f12agc requires an initial residual vector. By default
f12abc or
f12agc provides its own random initial residual vector; this option can also be set using optional parameter
. Alternatively, you can supply an initial residual vector (perhaps from a previous computation) to
f12abc or
f12agc through the array argument
resid; this option can be set using optional parameter
.
Shifted Inverse Imaginary | | |
These options define the computational mode which in turn defines the form of operation
to be performed by
f12agc or when
f12abc returns with
or
and the matrix-vector product
when
f12abc returns with
.
Given a
eigenvalue problem in the form
then the following modes are available with the appropriate operator
.
|
|
|
where is real |
Given a
eigenvalue problem in the form
then the following modes are available with the appropriate operator
.
|
|
with real shift |
, where is real |
with complex shift |
, where is complex |
|
, where is complex |
The problem to be solved is either a standard eigenvalue problem, , or a generalized eigenvalue problem, . The optional parameter should be used when a standard eigenvalue problem is being solved and the optional parameter should be used when a generalized eigenvalue problem is being solved.
An approximate eigenvalue has deemed to have converged when the corresponding Ritz estimate is within relative to the magnitude of the eigenvalue.
The function
f12acc or
f12agc can optionally compute the Schur vectors and/or the eigenvectors corresponding to the converged eigenvalues. To turn off computation of any vectors the option
should be set. To compute only the Schur vectors (at very little extra cost), the option
should be set and these will be returned in the array argument
v of
f12acc or
f12agc. To compute the eigenvectors (Ritz vectors) corresponding to the eigenvalue estimates, the option
should be set and these will be returned in the array argument
z of
f12acc or
f12agc, if
z is set equal to
v then the Schur vectors in
v are overwritten by the eigenvectors computed by
f12acc or
f12agc.