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
x | type(kind_parameter), dimension(:), intent(in)—. |
||||||||||||||||||||||||||||||||||||||||||||
| The local part of the vector x. Note that type and kind_parameter must be chosen according to the real/complex, single/double precision version of AMG4PSBLAS under use. |
||||||||||||||||||||||||||||||||||||||||||||
y | type a type(psb_xspmat_type), intent>>>>>> development
class="cmtt-12">(in). The local part of the vector y. Note that type and kind_parameter
=======
style="vertical-align:baseline;" id="TBL-13-2-"> The sparse matrix structure containing the local part of the matrix
>>>>>>> development
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 [20]. desc_a desc_a >>>>>> development
class="cmtt-12">type(psb_desc_type), intent(in). The communication descriptor associated to the matrix to be
=======
style="vertical-align:baseline;" id="TBL-13-4-"> The communication descriptor of a. See the PSBLAS User’s Guide
>>>>>>> development
for details [20]. info info >>>>>> development
class="cmtt-12">integer, intent(out). >>>>>> development
class="cmr-12">Error code. If no error, 0 is returned. See Section 7 for details. trans character amold class>>>>>> development
class="cmtt-12">(psb_x_base_sparse_mat), intent(in), optional. If trans = ’N’,’n’ then op(B-1) = B-1; if trans = ’T’,’t’
=======
style="vertical-align:baseline;" id="TBL-13-8-"> The desired dynamic type for internal matrix components; this
>>>>>>> development
allows e.g. running on GPUs; it needs not be the same on all
processes. See the PSBLAS User’s Guide for details [20]. work type(kind_parameter), dimension(:), optional, target—. Workspace. Its size should be at least 4 * vmold class(psb_x_base_vect_type),>>>>>> development
class="cmtt-12"> 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.