This interface contains the Shift-and-Invert method based on Arnoldi orthogonalization.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(psfun_d_serial), | intent(inout) | :: | fun | Function object |
||
type(psb_dspmat_type), | intent(in) | :: | a | Distribute sparse matrix |
||
character(len=*), | intent(in) | :: | kryl | Krylov method for the solution of inner systems |
||
type(amg_dprec_type), | intent(inout) | :: | prec | Preconditioner for the inner method |
||
real(kind=psb_dpk_), | intent(in) | :: | tau | Shift parameter of the method |
||
type(psb_desc_type), | intent(in) | :: | desc_a | Descriptor for the sparse matrix |
||
integer(kind=psb_ipk_), | intent(in) | :: | initmax | Maximum number of iteration (inner method) |
||
integer(kind=psb_ipk_), | intent(in) | :: | initrace | Trace for logoutput (inner method) |
||
integer(kind=psb_ipk_), | intent(in) | :: | inistop | Stop criterion (inner method) |
||
type(psb_d_vect_type), | intent(inout) | :: | y | Output vector |
||
type(psb_d_vect_type), | intent(inout) | :: | x | Input vector |
||
real(kind=psb_dpk_), | intent(in) | :: | eps | Requested tolerance |
||
integer(kind=psb_ipk_), | intent(out) | :: | info | Output flag |
||
integer(kind=psb_ipk_), | intent(in), | optional | :: | itmax | Maximum number of iteration |
|
integer(kind=psb_ipk_), | intent(in), | optional | :: | itrace | Trace for logoutput |
|
integer(kind=psb_ipk_), | intent(in), | optional | :: | istop | Stop criterion |
|
integer(kind=psb_ipk_), | intent(out), | optional | :: | iter | Number of iteration |
|
real(kind=psb_dpk_), | intent(out), | optional | :: | err | Last estimate error |
|
real(kind=psb_dpk_), | intent(out), | optional | allocatable | :: | res(:) | Vector of the residuals |
Shift-and-invert method based on the Arnoldi orthogonalization procedure the method builds a basis for the shifted Krylov subspace
and approximate ,for , the first vector of the canonical base of , and the Hessemberg matrix given by the projection of into the subspace .
To march the algorithm one needs to solve at each step a shifted linear system for which we employ the routines from psfun_krylov_mod and the preconditioners from AMG4PSBLAS.