call p%build(a,desc_a,info[,amold,vmold,imold])
This method builds the preconditioner p
according to the requirements
made by the user through the methods init
and set
(see Sections 6.3 and 6.4 for
multilevel preconditioners). It is mostly provided for backward
compatibility; indeed, it is internally implemented by invoking the
two previous methods hierarchy_build
and
smoothers_build
, whose nomenclature would however be somewhat
unnatural when dealing with simple one-level preconditioners.
Arguments
a |
type(psb_ xspmat_type), intent(in) . |
The sparse matrix structure containing the local part of the matrix to be preconditioned. Note that x must be chosen according to the real/complex, single/double precision version of MLD2P4 under use. See the PSBLAS User's Guide for details [13]. | |
desc_a |
type(psb_desc_type), intent(in) . |
The communication descriptor of a . See the PSBLAS User's Guide for
details [13]. |
|
info |
integer, intent(out) . |
Error code. If no error, 0 is returned. See Section 8 for details. | |
amold |
class(psb_ x_base_sparse_mat), intent(in), optional . |
The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same on all processes. See the PSBLAS User's Guide for details [13]. | |
vmold |
class(psb_ x_base_vect_type), intent(in), optional . |
The desired dynamic type for internal vector components; this allows e.g. running on GPUs. | |
imold |
class(psb_i_base_vect_type), intent(in), optional . |
The desired dynamic type for internal integer vector components; this allows e.g. running on GPUs. |
For compatibility with the previous versions of MLD2P4, this method can be also invoked as follows:
call mld_precbld(p,what,val,info[,amold,vmold,imold])
The method can be used to build multilevel preconditioners too.