psfun_d_saiarnoldi Interface

interface

This interface contains the Shift-and-Invert method based on Arnoldi orthogonalization.


Called by

interface~~psfun_d_saiarnoldi~~CalledByGraph interface~psfun_d_saiarnoldi psfun_d_saiarnoldi proc~psfun_d_parallel_apply psfun_d_parallel_apply proc~psfun_d_parallel_apply->interface~psfun_d_saiarnoldi

public module subroutine psfun_d_saiarnoldi(fun, a, kryl, prec, tau, desc_a, initmax, initrace, inistop, y, x, eps, info, itmax, itrace, istop, iter, err, res)

Arguments

Type IntentOptional AttributesName
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

Description

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.