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 5.3 and 5.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 AMG4PSBLAS under use. See the PSBLAS User’s Guide for details [16]. |
desc_a | type(psb_desc_type), intent(in). |
| The communication descriptor of a. See the PSBLAS User’s Guide for details [16]. |
info | integer, intent(out). |
| Error code. If no error, 0 is returned. See Section 7 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 [16]. |
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. |
The method can be used to build multilevel preconditioners too.