Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

FGMRES Interface Description

All types in this documentation refer to the common Fortran types:
INTEGER
and
DOUBLE PRECISION
.

Routine Options

All of the RCI FGMRES routines have common parameters for passing various options to the routines (see FGMRES Common Parameters ). The values for these parameters can be changed during computations.

User Data Arrays

Many of the RCI FGMRES routines take arrays of user data as input. For example, user arrays are passed to the routine
dfgmres
to compute the solution of a system of linear algebraic equations. To minimize storage requirements and improve overall run-time efficiency, the
Intel® MKL
RCI FGMRES routines do not make copies of the user input arrays.

FGMRES Common Parameters

The default and initial values listed below are assigned to the parameters by calling the
dfgmres_init
routine.
n
INTEGER
, this parameter sets the size of the problem in the
dfgmres_init
routine. All the other routines use the
ipar
(1)
parameter instead. Note that the coefficient matrix
A
is a square matrix of size
n
*
n
.
x
DOUBLE PRECISION
array, this parameter contains the current approximation to the solution vector. Before the first call to the
dfgmres
routine, it contains the initial approximation to the solution vector.
b
DOUBLE PRECISION
array, this parameter contains the right-hand side vector. Depending on user requests (see the parameter
ipar
(13)
), it might contain the approximate solution after execution.
RCI_request
INTEGER
, this parameter gives information about the result of work of the RCI FGMRES routines. Negative values of the parameter indicate that the routine completed with errors or warnings. The 0 value indicates successful completion of the task. Positive values mean that you must perform specific actions:
RCI_request
= 1
multiply the matrix by
tmp
(
ipar
(22))
, put the result in
tmp
(
ipar
(23))
, and return the control to the
dfgmres
routine;
RCI_request
= 2
perform the stopping tests. If they fail, return the control to the
dfgres
routine. Otherwise, the solution can be updated by a subsequent call to
dfgmres_get
routine;
RCI_request
= 3
apply the preconditioner to
tmp
(
ipar
(22))
, put the result in
tmp
(
ipar
(23))
, and return the control to the
dfgmres
routine.
RCI_request
= 4
check if the norm of the current orthogonal vector is zero, within the rounding or computational errors. Return the control to the
dfgmres
routine if it is not zero, otherwise complete the solution process by calling
dfgmres_get
routine.
ipar
(128)
[128]
INTEGER
array, this parameter specifies the integer set of data for the RCI FGMRES computations:
ipar
(1)
specifies the size of the problem. The
dfgmres_init
routine assigns
ipar
(1)
=
n
. All the other routines uses this parameter instead of
n
. There is no default value for this parameter.
ipar
(2)
specifies the type of output for error and warning messages that are generated by the RCI FGMRES routines. The default value
6
means that all messages are displayed on the screen. Otherwise the error and warning messages are written to the newly created file
MKL_RCI_FGMRES_Log.txt
. Note that if
ipar
(6)
and
ipar
(7)
parameters are set to 0, error and warning messages are not generated at all.
ipar
(3)
contains the current stage of the RCI FGMRES computations. The initial value is 1.
Avoid altering this variable during computations.
ipar
(4)
contains the current iteration number. The initial value is 0.
ipar
(5)
specifies the maximum number of iterations. The default value is
min
(150,
n
).
ipar
(6)
if the value is not 0, the routines output error messages in accordance with the parameter
ipar
(2)
. If it is 0, the routines do not output error messages at all, but return a negative value of the parameter
RCI_request
. The default value is 1.
ipar
(7)
if the value is not 0, the routines output warning messag