Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
|
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) |
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().
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().
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().
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().
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().
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().
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().