5.6 Method apply

call p%apply(x,y,desc_a,info [,trans,work])

This method computes y = op(B-1) x, where B is a previously built preconditioner, stored into p, and op denotes the preconditioner itself or its transpose, according to the value of trans. Note that, when AMG4PSBLAS is used with am iterative solver from PSBLAS, p%apply is called within the PSBLAS method psb_krylov and hence it is completely transparent to the user, who will almost never invoke it directly.

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(kind_parameter), dimension(:), intent(out)—.

The local part of the vector y. Note that type and kind_parameter must be chosen according to the real/complex, single/double precision version of AMG4PSBLAS under use.

desc_a

type(psb_desc_type), intent(in).

The communication descriptor associated to the matrix to be preconditioned.

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

trans

character(len=1), optional, intent(in).

If trans = N,n then op(B-1) = B-1; if trans = T,t then op(B-1) = B-T (transpose of B-1); if trans = C,c then op(B-1) = B-C (conjugate transpose of B-1).

work

type(kind_parameter), dimension(:), optional, target—.

Workspace. Its size should be at least 4 * psb_cd_get_local_ cols(desc_a) (see the PSBLAS User’s Guide). Note that type and kind_parameter must be chosen according to the real/complex, single/double precision version of AMG4PSBLAS under use.