Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 7/13/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

ILU0 and ILUT Preconditioners Interface Description

The concepts required to understand the use of the Intel® oneAPI Math Kernel Library (oneMKL) preconditioner routines are discussed in theAppendix A Linear Solvers Basics.

In this section FORTRAN style notations are used. All types refer to the standard Fortran types, INTEGER, and DOUBLE PRECISION.

User Data Arrays

The preconditioner routines take arrays of user data as input. To minimize storage requirements and improve overall run-time efficiency, the Intel® oneAPI Math Kernel Library (oneMKL) preconditioner routines do not make copies of the user input arrays.

Common Parameters

Some parameters of the preconditioners are common with the FGMRES Common Parameters. The routine dfgmres_init specifies their default and initial values. However, some parameters can be redefined with other values. These parameters are listed below.

For the ILU0 preconditioner:

ipar(2) - specifies the destination of error messages generated by the ILU0 routine. The default value 6 means that all error messages are displayed on the screen. Otherwise routine creates a log file called MKL_PREC_log.txt and writes error messages to it. Note if the parameter ipar(6) is set to 0, then error messages are not generated at all.

ipar(6) - specifies whether error messages are generated. If its value is not equal to 0, the ILU0 routine returns error messages as specified by the parameter ipar(2). Otherwise, the routine does not generate error messages at all, but returns a negative value for the parameter ierr. The default value is 1.

For the ILUT preconditioner:

ipar(2) - specifies the destination of error messages generated by the ILUT routine. The default value 6 means that all messages are displayed on the screen. Otherwise routine creates a log file called MKL_PREC_log.txt and writes error messages to it. Note if the parameter ipar(6) is set to 0, then error messages are not generated at all.

ipar(6) - specifies whether error messages are generated. If its value is not equal to 0, the ILUT routine returns error messages as specified by the parameter ipar(2). Otherwise, the routine does not generate error messages at all, but returns a negative value for the parameter ierr. The default value is 1.

ipar(7) - if its value is greater than 0, the ILUT routine generates warning messages as specified by the parameter ipar(2) and continues calculations. If its value is equal to 0, the routine returns a positive value of the parameter ierr. If its value is less than 0, the routine generates a warning message as specified by the parameter ipar(2) and returns a positive value of the parameter ierr. The default value is 1.