Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
 All Classes Files Functions Variables Typedefs Macros Groups Pages
iterativemethods Module Reference

Public Member Functions

subroutine itermethod_sgs (xvec, rhsvec, ipar, dpar, work, matvecsubr, pcondlsubr, pcondrsubr, dotprodfun, normfun, stopcfun)
 
subroutine itermethod_jacobi (xvec, rhsvec, ipar, dpar, work, matvecsubr, pcondlsubr, pcondrsubr, dotprodfun, normfun, stopcfun)
 
subroutine itermethod_richardson (xvec, rhsvec, ipar, dpar, work, matvecsubr, pcondlsubr, pcondrsubr, dotprodfun, normfun, stopcfun)
 
subroutine itermethod_bicgstabl (xvec, rhsvec, ipar, dpar, work, matvecsubr, pcondlsubr, pcondrsubr, dotprodfun, normfun, stopcfun)
 
subroutine itermethod_gcr (xvec, rhsvec, ipar, dpar, work, matvecsubr, pcondlsubr, pcondrsubr, dotprodfun, normfun, stopcfun)
 
subroutine itermethod_z_gcr (xvec, rhsvec, ipar, dpar, work, matvecsubr, pcondlsubr, pcondrsubr, dotprodfun, normfun, stopcfun)
 
subroutine itermethod_z_bicgstabl (xvec, rhsvec, ipar, dpar, work, matvecsubr, pcondlsubr, pcondrsubr, dotprodfun, normfun, stopcfun)
 

Member Function/Subroutine Documentation

subroutine iterativemethods::itermethod_bicgstabl ( real(kind=dp), dimension(huti_ndim), target  xvec,
real(kind=dp), dimension(huti_ndim), target  rhsvec,
integer, dimension(huti_ipar_dfltsize)  ipar,
real(kind=dp), dimension(huti_dpar_dfltsize)  dpar,
real(kind=dp), dimension(huti_wrkdim,huti_ndim), target  work,
external  matvecsubr,
external  pcondlsubr,
external  pcondrsubr,
real(kind=dp), external  dotprodfun,
real(kind=dp), external  normfun,
real(kind=dp), external  stopcfun 
)

This routine solves real linear systems Ax = b by using the BiCGStab(l) algorithm with l >= 2 and the right-oriented ILU(n) preconditioning.

References realbicgstabl().

Referenced by itersolve::itersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine iterativemethods::itermethod_gcr ( real(kind=dp), dimension(huti_ndim)  xvec,
real(kind=dp), dimension(huti_ndim)  rhsvec,
integer, dimension(huti_ipar_dfltsize)  ipar,
real(kind=dp), dimension(huti_dpar_dfltsize)  dpar,
real(kind=dp), dimension(huti_wrkdim,huti_ndim)  work,
external  matvecsubr,
external  pcondlsubr,
external  pcondrsubr,
real(kind=dp), external  dotprodfun,
real(kind=dp), external  normfun,
real(kind=dp), external  stopcfun 
)

This routine solves real linear systems Ax = b by using the GCR algorithm (Generalized Conjugate Residual).

References gcr().

Referenced by itersolve::itersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine iterativemethods::itermethod_jacobi ( real(kind=dp), dimension(huti_ndim)  xvec,
real(kind=dp), dimension(huti_ndim)  rhsvec,
integer, dimension(huti_ipar_dfltsize)  ipar,
real(kind=dp), dimension(huti_dpar_dfltsize)  dpar,
real(kind=dp), dimension(huti_wrkdim,huti_ndim)  work,
external  matvecsubr,
external  pcondlsubr,
external  pcondrsubr,
real(kind=dp), external  dotprodfun,
real(kind=dp), external  normfun,
real(kind=dp), external  stopcfun 
)

Jacobi iterative method for linear systems. This is not really of practical use but may be used for testing, for example. Note that if the scaling is performed so that the diagonal entry is one the division by it is unnecessary. Hence for this method scaling is not needed.

References jacobi().

Referenced by itersolve::itersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine iterativemethods::itermethod_richardson ( real(kind=dp), dimension(huti_ndim)  xvec,
real(kind=dp), dimension(huti_ndim)  rhsvec,
integer, dimension(huti_ipar_dfltsize)  ipar,
real(kind=dp), dimension(huti_dpar_dfltsize)  dpar,
real(kind=dp), dimension(huti_wrkdim,huti_ndim)  work,
external  matvecsubr,
external  pcondlsubr,
external  pcondrsubr,
real(kind=dp), external  dotprodfun,
real(kind=dp), external  normfun,
real(kind=dp), external  stopcfun 
)

Richardson iterative method for linear systems. This may of actual use for mass matrices. Actually this is not the simple Richardson iteration method as it is preconditioned with the lumped mass matrix. Note that if scaling is performed by the "row equilibrium" method then lumped mass is by construction unity (assuming all-positive entries). So for this method scaling is not needed.

References richardson().

Referenced by itersolve::itersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine iterativemethods::itermethod_sgs ( real(kind=dp), dimension(huti_ndim)  xvec,
real(kind=dp), dimension(huti_ndim)  rhsvec,
integer, dimension(huti_ipar_dfltsize)  ipar,
real(kind=dp), dimension(huti_dpar_dfltsize)  dpar,
real(kind=dp), dimension(huti_wrkdim,huti_ndim)  work,
external  matvecsubr,
external  pcondlsubr,
external  pcondrsubr,
real(kind=dp), external  dotprodfun,
real(kind=dp), external  normfun,
real(kind=dp), external  stopcfun 
)

Symmetric Gauss-Seidel iterative method for linear systems. This is not really of practical use but may be used for testing, for example.

References sgs().

Referenced by itersolve::itersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine iterativemethods::itermethod_z_bicgstabl ( real(kind=dp), dimension(2*huti_ndim)  xvec,
real(kind=dp), dimension(2*huti_ndim)  rhsvec,
integer, dimension(huti_ipar_dfltsize)  ipar,
real(kind=dp), dimension(huti_dpar_dfltsize)  dpar,
real(kind=dp), dimension(huti_wrkdim,2*huti_ndim)  work,
external  matvecsubr,
external  pcondlsubr,
external  pcondrsubr,
complex(kind=dp), external  dotprodfun,
real(kind=dp), external  normfun,
real(kind=dp), external  stopcfun 
)

This routine provides a complex version of the BiCGstab(l) solver for linear systems.

References complexbicgstabl().

Referenced by itersolve::itersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine iterativemethods::itermethod_z_gcr ( real(kind=dp), dimension(2*huti_ndim)  xvec,
real(kind=dp), dimension(2*huti_ndim)  rhsvec,
integer, dimension(huti_ipar_dfltsize)  ipar,
real(kind=dp), dimension(huti_dpar_dfltsize)  dpar,
real(kind=dp), dimension(huti_wrkdim,2*huti_ndim)  work,
external  matvecsubr,
external  pcondlsubr,
external  pcondrsubr,
complex(kind=dp), external  dotprodfun,
real(kind=dp), external  normfun,
real(kind=dp), external  stopcfun 
)

This routine provides the complex version to the GCR linear solver.

References gcr_z().

Referenced by itersolve::itersolver().

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this module was generated from the following file: