mld2p4-2:

docs/html/contents.png
 docs/html/crossref.png
 docs/html/index.html
 docs/html/node1.html
 docs/html/node10.html
 docs/html/node11.html
 docs/html/node12.html
 docs/html/node13.html
 docs/html/node14.html
 docs/html/node15.html
 docs/html/node16.html
 docs/html/node17.html
 docs/html/node18.html
 docs/html/node19.html
 docs/html/node2.html
 docs/html/node20.html
 docs/html/node21.html
 docs/html/node22.html
 docs/html/node23.html
 docs/html/node24.html
 docs/html/node25.html
 docs/html/node26.html
 docs/html/node27.html
 docs/html/node28.html
 docs/html/node3.html
 docs/html/node4.html
 docs/html/node5.html
 docs/html/node6.html
 docs/html/node7.html
 docs/html/node8.html
 docs/html/node9.html
 docs/html/userhtml.html
 docs/mld2p4-2.1-guide.pdf
 docs/src/gettingstarted.tex
 docs/src/userinterface.tex

New interfaces for building hierachy and preconditioner.
This commit is contained in:
Salvatore Filippone
2016-06-09 15:38:36 +00:00
parent d989714ee9
commit 86982461ad
35 changed files with 5859 additions and 5210 deletions
+24 -4
View File
@@ -21,6 +21,16 @@ The following steps are required:
\verb|mld_precinit| to identify the preconditioner types are also given.
Note that these strings are valid also if uppercase letters are substituted by
corresponding lowercase ones.
\item \emph{Modify the aggregation parameters.} This is performed by
the routine \verb|mld_precset|.
This routine must be called only if the user wants to modify the default values
of the parameters associated to the aggregation hierarchy construction.
Examples of use of \verb|mld_precset| are given in
Section~\ref{sec:examples}; a complete list of all the
preconditioner parameters and their allowed and default values is provided in
Section~\ref{sec:userinterface}, Tables~\ref{tab:p_type}-\ref{tab:p_coarse}.
\item \emph{Build the aggregation hierarchy for a given matrix.} This is performed by
the routine \verb|mld_hierarchy_bld|.
\item \emph{Modify the selected preconditioner type, by properly setting
preconditioner parameters.} This is performed by the routine \verb|mld_precset|.
This routine must be called only if the user wants to modify the default values
@@ -30,7 +40,7 @@ The following steps are required:
preconditioner parameters and their allowed and default values is provided in
Section~\ref{sec:userinterface}, Tables~\ref{tab:p_type}-\ref{tab:p_coarse}.
\item \emph{Build the preconditioner for a given matrix.} This is performed by
the routine \verb|mld_precbld|.
the routine \verb|mld_ml_prec_bld|.
\item \emph{Apply the preconditioner at each iteration of a Krylov solver.}
This is performed by the routine \verb|mld_precaply|. When using the PSBLAS Krylov solvers,
this step is completely transparent to the user, since \verb|mld_precaply| is called
@@ -172,7 +182,9 @@ the corresponding Fortran 95 codes are available in \verb|examples/fileread/|.
call mld_precinit(P,'ML',info)
!
! build the preconditioner
call mld_precbld(A,desc_A,P,info)
call mld_hierarchy_bld(A,desc_A,P,info)
call mld_ml_prec_bld(A,desc_A,P,info)
!
! set the solver parameters and the initial guess
... ...
@@ -257,11 +269,14 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
! block Jacobi (with ILU(0) on the blocks) as post-smoother,
! a coarsest matrix replicated on the processors, and the
! LU factorization from UMFPACK as coarse-level solver
call mld_precinit(P,'ML',info,nlev=3)
call mld_precinit(P,'ML',info)
call mld_hierarchy_bld(A,desc_A,P,info)
call_mld_precset(P,'SMOOTHER_TYPE','BJAC',info)
call_mld_precset(P,'SMOOTHER_POS,'POST'w,info)
call mld_precset(P,'COARSE_MAT','REPL',info)
call mld_precset(P,'COARSE_SOLVE','UMF',info)
call mld_ml_prec_bld(A,desc_A,P,info)
... ...
\end{verbatim}
}
@@ -283,10 +298,12 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
! multifrontal solver in MUMPS as coarse-level solver
call mld_precinit(P,'ML',info,nlev=3)
call mld_hierarchy_bld(A,desc_A,P,info)
call mld_precset(P,mld_smoother_type_,'BJAC',info)
call mld_precset(P,mld_coarse_mat_,'REPL',info)
call mld_precset(P,mld_coarse_solve_,'MUMPS',info)
call mld_ml_prec_bld(A,desc_A,P,info)
... ...
\end{verbatim}
}
@@ -308,9 +325,11 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
! post-smoother, and 5 block-Jacobi sweeps (with UMFPACK LU
! on the blocks) as distributed coarsest-level solver
call mld_precinit(P,'ML',info,nlev=3)
call mld_ml_prec_bld(A,desc_A,P,info)
call mld_precset(P,'ML_TYPE','ADD',info)
call_mld_precset(P,'SMOOTHER_POS','TWOSIDE',info)
call mld_precset(P,'COARSE_SWEEPS',5,info)
call mld_ml_prec_bld(A,desc_A,P,info)
... ...
\end{verbatim}
}
@@ -329,6 +348,7 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
! set RAS with overlap 2 and ILU(0) on the local blocks
call mld_precinit(P,'AS',info)
call mld_precset(P,'SUB_OVR',2,info)
call mld_precbld(A,desc_A,P,info)
... ...
\end{verbatim}
}