Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 11/07/2023
Public

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

Document Table of Contents

ipar

ipar

MKL_INT array of size 128, holds integer data needed for Fast Helmholtz Solver (both for Cartesian and spherical coordinate systems). Its elements are described in Table "Elements of the ipar Array":

NOTE:

Initial values can be assigned to the array parameters by the appropriate ?_init_Helmholtz_2D/?_init_Helmholtz_3D/?_init_sph_p/?_init_sph_np and ?_commit_Helmholtz_2D/?_commit_Helmholtz_3D/?_commit_sph_p/?_commit_sph_np routines.

Elements of the ipar Array

Index

Description

1

Contains status value of the last Poisson Solver routine called. In general, it should be 0 on exit from a routine to proceed with the Fast Helmholtz Solver. The element has no predefined values. This element can also be used to inform the ?_commit_Helmholtz_2D/?_commit_Helmholtz_3D/?_commit_sph_p/?_commit_sph_np routines of how the Commit step of the computation should be carried out (see Figure "Typical Order of Invoking Poisson Solver Routines"). A non-zero value of ipar(1) with decimal representation


=100a+10b+c, where each of a, b, and c is equal to 0 or 9, indicates that some parts of the Commit step should be omitted.
  • If c=9, the routine omits checking of parameters and initialization of the data structures.

  • If b=9,

    • In the Cartesian case, the routine omits the adjustment of the right-hand side vector f to the Neumann boundary condition (multiplication of boundary values by 0.5 as well as incorporation of the boundary function g) and/or the Dirichlet boundary condition (setting boundary values to 0 as well as incorporation of the boundary function G).

    • For the Helmholtz solver on a sphere, the routine omits computation of the spherical weights for the dpar/spar array.

  • If a=9, the routine omits the normalization of the right-hand side vector f. Depending on the solver, the normalization means:

    • 2D Cartesian case: multiplication by hy2, where hy is the mesh size in the y direction (for details, see Poisson Solver Implementation).
    • 3D (Cartesian) case: multiplication by hz2, where hz is the mesh size in the z direction.
    • Helmholtz solver on a sphere: multiplication by hθ2, where hθ is the mesh size in the θ direction (for details, see Poisson Solver Implementation).

Using ipar(1) you can adjust the routine to your needs and improve efficiency in solving multiple Helmholtz problems that differ only in the right-hand side. You must be cautious when using this method, because any misunderstanding of the commit process may cause incorrect results or program failure (see also Caveat on Parameter Modifications).

2

Contains error messaging options:

  • ipar(2)=-1 indicates that all error messages are printed to the MKL_Poisson_Library_log.txt file in the folder from which the routine is called. If the file does not exist, the routine tries to create it. If the attempt fails, the routine prints information that the file cannot be created to the standard output device (usually, screen).
  • ipar(2)=0 indicates that no error messages will be printed.
  • ipar(2)=1 is the default value. It indicates that all error messages are printed to the standard output device.

In case of errors, the stat parameter contains a non-zero value on exit from a routine regardless of the ipar(2) setting.

3

Contains warning messaging options:

  • ipar(3)=-1 indicates that all warning messages are printed to the MKL_Poisson_Library_log.txt file in the directory from which the routine is called. If the file does not exist, the routine tries to create it. If the attempt fails, the routine prints information that the file cannot be created to the standard output device.
  • ipar(3)=0 indicates that no warning messages will be printed.
  • ipar(3)=1 is the default value. It indicates that all warning messages are printed to the standard output device.

In case of warnings, the stat parameter contains a non-zero value on exit from a routine regardless of the ipar(3) setting.

4 through 6

Internal parameters.

Parameters 7 through 12 are used only in the Cartesian case.

NOTE:

While you can declare the ipar array as MKL_INT ipar(121), for future compatibility you should declare ipar as MKL_INT ipar(129).