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

#### 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 a Krylov solver from PSBLAS, `p%apply` is called within the PSBLAS method `psb_krylov` and hence it is completely transparent to the user.

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.

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