ReD_Glk_CSLP_gmres Subroutine

public subroutine ReD_Glk_CSLP_gmres(mg_solve, grid, maximum_iterations)

This is a rountine to solve a coarse grid CSLP system approximately by using GMRES The CSLP operator is defined by ReD-Glk scheme CSLP operator by ReD-Glk

Be careful!!, after the whole iteration without achieving eps, then the value of j will be "m_iter+1".So we need a k.

Attention: h_(i,j)=(w,v_i)=v^H*w, for complex value, so the code should be dot_product(v_i,w) ---call back_substitute(H,beta,k)---------------------------------


Arguments

Type IntentOptional Attributes Name
type(GridSystem), intent(inout) :: mg_solve
type(Gridpara) :: grid
integer, intent(in), optional :: maximum_iterations

User-specified maximum number of iterations,default is 300


Calls

proc~~red_glk_cslp_gmres~~CallsGraph proc~red_glk_cslp_gmres ReD_Glk_CSLP_gmres cdsqrt cdsqrt proc~red_glk_cslp_gmres->cdsqrt proc~cslp_mx_nth CSLP_Mx_nth proc~red_glk_cslp_gmres->proc~cslp_mx_nth proc~log2 LOG2 proc~red_glk_cslp_gmres->proc~log2 proc~mg_dot_prod mg_dot_prod proc~red_glk_cslp_gmres->proc~mg_dot_prod proc~mg_norm mg_norm proc~red_glk_cslp_gmres->proc~mg_norm proc~cslp_mx_nth->proc~log2 proc~cslp2d_stencils cslp2d_stencils proc~cslp_mx_nth->proc~cslp2d_stencils proc~cslp_mx_nth_stencils CSLP_Mx_nth_stencils proc~cslp_mx_nth->proc~cslp_mx_nth_stencils proc~gridbase_extrpltghostbcs GridBase_ExtrpltGhostBCs proc~cslp_mx_nth->proc~gridbase_extrpltghostbcs proc~mg_check_xy2d mg_check_xy2d proc~cslp_mx_nth->proc~mg_check_xy2d mpi_allreduce mpi_allreduce proc~mg_dot_prod->mpi_allreduce proc~mg_norm->mpi_allreduce proc~cslp_mx_nth_stencils->proc~log2 proc~mg_check_x2d mg_check_x2d proc~mg_check_xy2d->proc~mg_check_x2d proc~mg_check_y2d mg_check_y2d proc~mg_check_xy2d->proc~mg_check_y2d mpi_sendrecv mpi_sendrecv proc~mg_check_x2d->mpi_sendrecv proc~mg_check_y2d->mpi_sendrecv

Called by

proc~~red_glk_cslp_gmres~~CalledByGraph proc~red_glk_cslp_gmres ReD_Glk_CSLP_gmres proc~krylovcslp_invmhx KrylovCSLP_invMHx proc~krylovcslp_invmhx->proc~red_glk_cslp_gmres proc~def_prefgmres DEF_prefgmres proc~def_prefgmres->proc~krylovcslp_invmhx proc~multileveladp_px MultiLevelADP_Px proc~def_prefgmres->proc~multileveladp_px proc~multileveladp_px->proc~krylovcslp_invmhx proc~multilevel_invey MultiLevel_invEy proc~multileveladp_px->proc~multilevel_invey proc~def_px DEF_Px proc~def_px->proc~multileveladp_px proc~multilevel_invey->proc~def_prefgmres proc~precond_x Precond_x proc~precond_x->proc~def_px proc~full_pgcr full_pgcr proc~full_pgcr->proc~precond_x proc~full_pgmres full_pgmres proc~full_pgmres->proc~precond_x proc~pfgmres pfgmres proc~pfgmres->proc~precond_x proc~pre_fullgmres Pre_fullgmres proc~pre_fullgmres->proc~precond_x proc~prearnoldi Prearnoldi proc~pre_fullgmres->proc~prearnoldi proc~pre_restartgmres Pre_restartgmres proc~pre_restartgmres->proc~precond_x proc~pre_restartgmres->proc~prearnoldi proc~prearnoldi->proc~precond_x program~helmholtz_2d helmholtz_2d program~helmholtz_2d->proc~full_pgcr program~helmholtz_2d->proc~full_pgmres program~helmholtz_2d->proc~pfgmres program~helmholtz_2d->proc~pre_fullgmres program~helmholtz_2d->proc~pre_restartgmres