mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
mld2p4:
mlprec/impl/mld_ccprecset.F90 mlprec/impl/mld_dcprecset.F90 mlprec/impl/mld_scprecset.F90 mlprec/impl/mld_zcprecset.F90 Fixed defaults.
This commit is contained in:
+116
-20
@@ -146,7 +146,6 @@ subroutine mld_ccprecseti(p,what,val,info,ilev,ilmax,pos)
|
||||
return
|
||||
end select
|
||||
|
||||
|
||||
!
|
||||
! Set preconditioner parameters at level ilev.
|
||||
!
|
||||
@@ -184,28 +183,76 @@ subroutine mld_ccprecseti(p,what,val,info,ilev,ilmax,pos)
|
||||
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_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
if (nlev_ > 1) then
|
||||
call p%precv(nlev_)%set('COARSE_SOLVE',val,info,pos=pos)
|
||||
select case (val)
|
||||
case(mld_bjac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
#if 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_)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#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_)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
case(mld_umf_)
|
||||
#if 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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
|
||||
case(mld_sludist_)
|
||||
#if 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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info)
|
||||
case(mld_slu_,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_)
|
||||
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)
|
||||
case(mld_jac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
call p%precv(nlev_)%set('SUB_SOLVE',mld_diag_scale_,info,pos=pos)
|
||||
@@ -277,14 +324,63 @@ subroutine mld_ccprecseti(p,what,val,info,ilev,ilmax,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_,mld_ilu_n_, mld_ilu_t_,mld_milu_n_)
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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_)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
case(mld_umf_)
|
||||
#if 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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
|
||||
case(mld_sludist_)
|
||||
#if 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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
case(mld_jac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
call p%precv(nlev_)%set('SUB_SOLVE',mld_diag_scale_,info,pos=pos)
|
||||
|
||||
+134
-30
@@ -152,7 +152,6 @@ subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos)
|
||||
return
|
||||
end select
|
||||
|
||||
|
||||
!
|
||||
! Set preconditioner parameters at level ilev.
|
||||
!
|
||||
@@ -190,38 +189,90 @@ subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos)
|
||||
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_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
if (nlev_ > 1) then
|
||||
call p%precv(nlev_)%set('COARSE_SOLVE',val,info,pos=pos)
|
||||
select case (val)
|
||||
case(mld_bjac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,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_)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#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_)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info)
|
||||
case(mld_slu_,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_)
|
||||
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)
|
||||
case(mld_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)
|
||||
case(mld_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)
|
||||
case(mld_jac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
call p%precv(nlev_)%set('SUB_SOLVE',mld_diag_scale_,info,pos=pos)
|
||||
@@ -295,22 +346,75 @@ subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,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_,mld_ilu_n_, mld_ilu_t_,mld_milu_n_)
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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_)
|
||||
#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)
|
||||
case(mld_umf_)
|
||||
#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)
|
||||
#endif
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
case(mld_jac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
call p%precv(nlev_)%set('SUB_SOLVE',mld_diag_scale_,info,pos=pos)
|
||||
|
||||
+116
-20
@@ -146,7 +146,6 @@ subroutine mld_scprecseti(p,what,val,info,ilev,ilmax,pos)
|
||||
return
|
||||
end select
|
||||
|
||||
|
||||
!
|
||||
! Set preconditioner parameters at level ilev.
|
||||
!
|
||||
@@ -184,28 +183,76 @@ subroutine mld_scprecseti(p,what,val,info,ilev,ilmax,pos)
|
||||
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_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
if (nlev_ > 1) then
|
||||
call p%precv(nlev_)%set('COARSE_SOLVE',val,info,pos=pos)
|
||||
select case (val)
|
||||
case(mld_bjac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
#if 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_)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#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_)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
case(mld_umf_)
|
||||
#if 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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
|
||||
case(mld_sludist_)
|
||||
#if 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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info)
|
||||
case(mld_slu_,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_)
|
||||
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)
|
||||
case(mld_jac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
call p%precv(nlev_)%set('SUB_SOLVE',mld_diag_scale_,info,pos=pos)
|
||||
@@ -277,14 +324,63 @@ subroutine mld_scprecseti(p,what,val,info,ilev,ilmax,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_,mld_ilu_n_, mld_ilu_t_,mld_milu_n_)
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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_)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
case(mld_umf_)
|
||||
#if 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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
|
||||
case(mld_sludist_)
|
||||
#if 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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
case(mld_jac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
call p%precv(nlev_)%set('SUB_SOLVE',mld_diag_scale_,info,pos=pos)
|
||||
|
||||
+134
-30
@@ -152,7 +152,6 @@ subroutine mld_zcprecseti(p,what,val,info,ilev,ilmax,pos)
|
||||
return
|
||||
end select
|
||||
|
||||
|
||||
!
|
||||
! Set preconditioner parameters at level ilev.
|
||||
!
|
||||
@@ -190,38 +189,90 @@ subroutine mld_zcprecseti(p,what,val,info,ilev,ilmax,pos)
|
||||
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_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
if (nlev_ > 1) then
|
||||
call p%precv(nlev_)%set('COARSE_SOLVE',val,info,pos=pos)
|
||||
select case (val)
|
||||
case(mld_bjac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,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_)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#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_)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
call p%precv(nlev_)%set('COARSE_MAT',mld_distr_mat_,info)
|
||||
case(mld_slu_,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_)
|
||||
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)
|
||||
case(mld_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)
|
||||
case(mld_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)
|
||||
case(mld_jac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
call p%precv(nlev_)%set('SUB_SOLVE',mld_diag_scale_,info,pos=pos)
|
||||
@@ -295,22 +346,75 @@ subroutine mld_zcprecseti(p,what,val,info,ilev,ilmax,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_,mld_ilu_n_, mld_ilu_t_,mld_milu_n_)
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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_)
|
||||
#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)
|
||||
case(mld_umf_)
|
||||
#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)
|
||||
#endif
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
|
||||
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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#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)
|
||||
#endif
|
||||
case(mld_jac_)
|
||||
call p%precv(nlev_)%set('SMOOTHER_TYPE',mld_bjac_,info,pos=pos)
|
||||
call p%precv(nlev_)%set('SUB_SOLVE',mld_diag_scale_,info,pos=pos)
|
||||
|
||||
Reference in New Issue
Block a user