The basic user interface of MLD2P4 consists of six routines. The four routines mld_precinit
,
mld_precset
, mld_precbld
and mld_precaply
encapsulate all the functionalities
for the setup and the application of any one-level and multi-level
preconditioner implemented in the package.
The routine mld_precfree
deallocates the preconditioner data structure, while
mld_precdescr
prints a description of the preconditioner setup by the user.
For each routine, the same user interface is overloaded with respect to the real/complex case and the single/double precision; arguments with appropriate data types must be passed to the routine, i.e.
mld_
xspmat_type
with x = s
for real single precision, x = d
for real double precision, x = c
for complex single precision,
x = z
for complex double precision;
mld_
xprec_type
, with x =
s
, d
, c
, z
, according to the sparse
matrix data structure;
(
kind_parameter)
, with type =
real
, complex
and kind_parameter = kind(1.e0)
,
kind(1.d0)
, according to the sparse matrix and preconditioner
data structure; note that the PSBLAS module psb_base_mod
provides the constants psb_spk_
= kind(1.e0)
and psb_dpk_
= kind(1.d0)
;