|
|
|
@ -194,89 +194,89 @@ subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos,idx)
|
|
|
|
|
info = -2
|
|
|
|
|
return
|
|
|
|
|
end if
|
|
|
|
|
if (nlev_ > 1) then
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_SOLVE',val,info,pos=pos)
|
|
|
|
|
select case (val)
|
|
|
|
|
case(mld_bjac_,mld_l1_bjac_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',val,info,pos=pos)
|
|
|
|
|
if (nlev_ > 1) then
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_SOLVE',val,info,pos=pos)
|
|
|
|
|
select case (val)
|
|
|
|
|
case(mld_bjac_,mld_l1_bjac_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',val,info,pos=pos)
|
|
|
|
|
#if defined(HAVE_UMF_)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_umf_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_umf_,info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_SLU_)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_slu_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_slu_,info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_mumps_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_mumps_,info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info)
|
|
|
|
|
case(mld_slu_)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info)
|
|
|
|
|
case(mld_slu_)
|
|
|
|
|
#if defined(HAVE_SLU_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_mumps_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_mumps_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
case(mld_ilu_n_, mld_ilu_t_,mld_milu_n_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
case(mld_mumps_)
|
|
|
|
|
case(mld_ilu_n_, mld_ilu_t_,mld_milu_n_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
case(mld_mumps_)
|
|
|
|
|
#if defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
case(mld_umf_)
|
|
|
|
|
case(mld_umf_)
|
|
|
|
|
#if defined(HAVE_UMF_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_SLU_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_slu_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_slu_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_mumps_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_mumps_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
case(mld_sludist_)
|
|
|
|
|
case(mld_sludist_)
|
|
|
|
|
#if defined(HAVE_SLUDIST_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',val,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_UMF_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_umf_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_umf_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_SLU_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_slu_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_slu_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_repl_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_mumps_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_mumps_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_ilu_n_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
case(mld_jac_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
@ -287,6 +287,18 @@ subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos,idx)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_l1_diag_scale_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
case(mld_gs_,mld_fbgs_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_gs_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
case(mld_bwgs_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_bwgs_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
case(mld_l1_gs_,mld_l1_fbgs_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_l1_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_gs_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
end select
|
|
|
|
|
|
|
|
|
|
endif
|
|
|
|
@ -435,6 +447,18 @@ subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos,idx)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_l1_diag_scale_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
case(mld_gs_,mld_fbgs_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_gs_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
case(mld_bwgs_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_bwgs_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
case(mld_l1_gs_,mld_l1_fbgs_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_l1_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',mld_gs_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info,pos=pos)
|
|
|
|
|
end select
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
@ -609,89 +633,88 @@ subroutine mld_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
info = -2
|
|
|
|
|
return
|
|
|
|
|
end if
|
|
|
|
|
if (nlev_ > 1) then
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_SOLVE',string,info,pos=pos)
|
|
|
|
|
select case (psb_toupper(trim(string)))
|
|
|
|
|
case('BJAC', 'L1-BJAC')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',psb_toupper(trim(string)),info,pos=pos)
|
|
|
|
|
if (nlev_ > 1) then
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_SOLVE',string,info,pos=pos)
|
|
|
|
|
select case (psb_toupper(trim(string)))
|
|
|
|
|
case('BJAC', 'L1-BJAC')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',psb_toupper(trim(string)),info,pos=pos)
|
|
|
|
|
#if defined(HAVE_UMF_)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','UMF',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','UMF',info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_SLU_)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','SLU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','SLU',info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','MUMPS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','MUMPS',info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','dist',info)
|
|
|
|
|
case('SLU')
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','dist',info)
|
|
|
|
|
case('SLU')
|
|
|
|
|
#if defined(HAVE_SLU_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','SLU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','SLU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','MUMPS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','MUMPS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
case('ILU','MILU','ILUT')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','bjac',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',string,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
case('MUMPS')
|
|
|
|
|
case('ILU','MILU','ILUT')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','bjac',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',string,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
case('MUMPS')
|
|
|
|
|
#if defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',string,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',string,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
case('UMF')
|
|
|
|
|
case('UMF')
|
|
|
|
|
#if defined(HAVE_UMF_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',string,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',string,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_SLU_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','SLU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','SLU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','MUMPS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','MUMPS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
case('SLUDIST')
|
|
|
|
|
case('SLUDIST')
|
|
|
|
|
#if defined(HAVE_SLUDIST_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',string,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',string,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_UMF_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','UMF',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','UMF',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_SLU_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','SLU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','SLU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','REPL',info,pos=pos)
|
|
|
|
|
#elif defined(HAVE_MUMPS_)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','MUMPS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','MUMPS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
#else
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','ILU',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
case('JAC','JACOBI')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
@ -702,6 +725,18 @@ subroutine mld_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','L1-DIAG',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
case('GS','FWGS','FBGS')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','GS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
case('BWGS')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','BWGS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
case('L1-GS')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','L1-BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','GS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
end select
|
|
|
|
|
|
|
|
|
|
endif
|
|
|
|
@ -827,11 +862,22 @@ subroutine mld_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','DIAG',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
|
|
|
|
|
case('L1-JACOBI')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','L1-DIAG',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
case('GS','FWGS','FBGS')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','GS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
case('BWGS')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','BWGS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
case('L1-GS')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE','L1-BJAC',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE','GS',info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT','DIST',info,pos=pos)
|
|
|
|
|
end select
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|