Merge branch 'maint-1.0' into development

This commit is contained in:
Salvatore Filippone
2021-07-15 12:09:54 +02:00
52 changed files with 1418 additions and 4258 deletions
+3 -3
View File
@@ -211,12 +211,12 @@ ps: $(PS)
.PHONY: clean clean-tmp preview print gzip gunzip tar ci
clean:
clean: clean-tmp
rm -f $(PDF) $(PS)
cd tmp ; rm -r -f *
clean-tmp:
cd tmp ; rm -r -f *
(test -d tmp && cd tmp && rm -r -f *)
#----------------------------------------------------------------------------
+18 -14
View File
@@ -174,7 +174,7 @@ the corresponding codes are available in \verb|samples/simple/file|\-\verb|read|
! with basic smoothed aggregation, 1 hybrid forward/backward
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
! solver
call P%init('ML',info)
call P%init(ctxt,'ML',info)
!
! build the preconditioner
call P%hierarchy_build(A,desc_A,info)
@@ -184,8 +184,8 @@ the corresponding codes are available in \verb|samples/simple/file|\-\verb|read|
! set the solver parameters and the initial guess
... ...
!
! solve Ax=b with preconditioned CG
call psb_krylov('CG',A,P,b,x,tol,desc_A,info)
! solve Ax=b with preconditioned FCG
call psb_krylov('FCG',A,P,b,x,tol,desc_A,info)
... ...
!
! deallocate the preconditioner
@@ -229,7 +229,7 @@ stop
! with basic smoothed aggregation, 1 hybrid forward/backward
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
! solver
call P%init('ML',info)
call P%init(ctxt,'ML',info)
!
! build the preconditioner
call P%hierarchy_build(A,desc_A,info)
@@ -239,8 +239,8 @@ stop
! set the solver parameters and the initial guess
... ...
!
! solve Ax=b with preconditioned CG
call psb_krylov('CG',A,P,b,x,tol,desc_A,info)
! solve Ax=b with preconditioned FCG
call psb_krylov('FCG',A,P,b,x,tol,desc_A,info)
... ...
!
! deallocate the preconditioner
@@ -307,7 +307,7 @@ boundary conditions are also available in the directory \verb|samples/simple/pde
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
! ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
! sweeps (with ILU(0) on the blocks) as coarsest-level solver
call P%init('ML',info)
call P%init(ctxt,'ML',info)
call P%set('SMOOTHER_TYPE','BJAC',info)
call P%set('COARSE_SOLVE','BJAC',info)
call P%set('COARSE_SWEEPS',8,info)
@@ -323,7 +323,7 @@ call P%smoothers_build(A,desc_A,info)
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
! ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
! sweeps (with ILU(0) on the blocks) as coarsest-level solver
call P%init('ML',info)
call P%init(ctxt,'ML',info)
call P%set('SMOOTHER_TYPE','BJAC',info)
call P%set('COARSE_SOLVE','BJAC',info)
call P%set('COARSE_SWEEPS',8,info)
@@ -345,7 +345,7 @@ call P%smoothers_build(A,desc_A,info)
!2 hybrid Gauss-Seidel sweeps as pre- and post-smoother,
!and parallel flexible Conjugate Gradient coupled with the block-Jacobi
!preconditioner having ILU(0) on the blocks as coarsest solver.
call P%init('ML',info)
call P%init(ctxt,'ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
@@ -353,6 +353,8 @@ call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_TYPE','FBGS',info)
call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','KRM',info)
call P%set('COARSE_MAT','DIST',info)
call P%set('KRM_METHOD','FCG',info)
call P%hierarchy_build(A,desc_A,info)
call P%smoothers_build(A,desc_A,info)
\end{minted}
@@ -365,14 +367,16 @@ call P%smoothers_build(A,desc_A,info)
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
! as pre- and post-smoother, a distributed coarsest
! matrix, and MUMPS as coarsest-level solver
call P%init('ML',info)
call P%init(ctxt,'ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_TYPE','FBGS',info)
call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','KRM',info)
call P%set('COARSE_MAT','DIST',info)
call P%set('KRM_METHOD','FCG',info)
call P%hierarchy_build(A,desc_A,info)
call P%smoothers_build(A,desc_A,info)
... ...
@@ -387,7 +391,7 @@ call P%set('AGGR_SIZE',8,info)
\ifpdf
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
! build a one-level RAS with overlap 2 and ILU(0) on the local blocks.
call P%init('AS',info)
call P%init(ctxt,'AS',info)
call P%set('SUB_OVR',2,info)
call P%build(A,desc_A,info)
... ...
@@ -401,7 +405,7 @@ call P%build(A,desc_A,info)
\begin{verbatim}
... ...
! set RAS with overlap 2 and ILU(0) on the local blocks
call P%init('AS',info)
call P%init(ctxt,'AS',info)
call P%set('SUB_OVR',2,info)
call P%bld(A,desc_A,info)
... ...
+12 -5
View File
@@ -176,9 +176,10 @@ Similar considerations apply to the point-Jacobi, Gauss-Seidel and block-Jacobi
coarsest-level solvers, and shortcuts are available
in this case too (see Table~\ref{tab:p_coarse_1}). \\
\textbf{Remark 3.} Many of the coarsest-level solvers cannot be used
with both replicated and distributed coarsest-matrix layouts;
therefore, setting the solver after the layout may change the layout.
\textbf{Remark 3.} Many of the coarsest-level solvers apply to a
specific coarsest-matrix layout;
therefore, setting the solver after the layout may change the layout
to either distributed or replicated.
Similarly, setting the layout after the solver may change the solver.
More precisely, UMFPACK and SuperLU require the coarsest-level
@@ -399,8 +400,14 @@ the parameter \texttt{ilev}.} \\
\fortinline|'COARSE_SOLVE'| & \fortinline|character(len=*)|
& \fortinline|'MUMPS'| \par \fortinline|'UMF'| \par
\fortinline|'SLU'| \par \fortinline|'SLUDIST'| \par
\fortinline|'JACOBI'| \par \fortinline|'GS'| \par \fortinline|'BJAC'| \par \fortinline|'KRM'|
\fortinline|'L1-JACOBI'| \par \fortinline|'L1-BJAC'| \par \fortinline|'L1-FBGS'|
\fortinline|'ILU'| \par
\fortinline|'JACOBI'| \par
\fortinline|'GS'| \par
\fortinline|'BJAC'| \par
\fortinline|'KRM'| \par
\fortinline|'L1-JACOBI'| \par
\fortinline|'L1-BJAC'| \par
\fortinline|'L1-FBGS'|
& See~Note.
& Solver used at the coarsest level: sequential
LU from MUMPS, UMFPACK, or SuperLU