[next] [prev] [prev-tail] [tail] [up]

#### 5.5 Method build

`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_`x `spmat_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 [21].
`desc_a` | `type(psb_desc_type), intent(in)`.
| The communication descriptor of `a`. See the PSBLAS User’s Guide for details [21].
`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 [21].
`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.

[next] [prev] [prev-tail] [front] [up]