mld2p4-2:

docs/html/img100.png
 docs/html/img101.png
 docs/html/img102.png
 docs/html/img103.png
 docs/html/img104.png
 docs/html/img94.png
 docs/html/img95.png
 docs/html/img96.png
 docs/html/img97.png
 docs/html/img98.png
 docs/html/img99.png
 docs/html/node12.html
 docs/html/node14.html
 docs/html/node15.html
 docs/html/node18.html
 docs/html/node20.html
 docs/html/node26.html
 docs/mld2p4-2.0-guide.pdf
 docs/src/gettingstarted.tex
 docs/src/userinterface.tex
 mlprec/archive/mld_c_as_smoother_impl.f90
 mlprec/archive/mld_c_onelev_impl.f90
 mlprec/archive/mld_d_as_smoother_impl.f90
 mlprec/archive/mld_d_onelev_impl.f90
 mlprec/archive/mld_s_as_smoother_impl.f90
 mlprec/archive/mld_s_onelev_impl.f90
 mlprec/archive/mld_z_as_smoother_impl.f90
 mlprec/impl/level/mld_c_base_onelev_check.f90
 mlprec/impl/level/mld_d_base_onelev_check.f90
 mlprec/impl/level/mld_s_base_onelev_check.f90
 mlprec/impl/level/mld_z_base_onelev_check.f90
 mlprec/impl/mld_cmlprec_bld.f90
 mlprec/impl/mld_dmlprec_bld.f90
 mlprec/impl/mld_smlprec_bld.f90
 mlprec/impl/mld_z_onelev_impl.f90
 mlprec/impl/mld_zmlprec_bld.f90
 mlprec/impl/smoother/mld_c_as_smoother_check.f90
 mlprec/impl/smoother/mld_d_as_smoother_check.f90
 mlprec/impl/smoother/mld_s_as_smoother_check.f90
 mlprec/impl/smoother/mld_z_as_smoother_check.f90
 mlprec/mld_base_prec_type.F90
 mlprec/mld_c_ilu_solver.f90
 mlprec/mld_d_ilu_solver.f90
 mlprec/mld_s_ilu_solver.f90
 mlprec/mld_z_ilu_solver.f90
 tests/fileread/Makefile
 tests/fileread/df_sample.f90
 tests/fileread/runs/dfs.inp

Unify checks for INT nonnegative or positive.
This commit is contained in:
Salvatore Filippone
2016-02-03 18:49:32 +00:00
parent 758d52f175
commit 8d27ad5167
48 changed files with 5039 additions and 4403 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 648 B

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 673 B

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 695 B

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 634 B

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

After

Width:  |  Height:  |  Size: 634 B

+1 -1
View File
@@ -727,7 +727,7 @@ $w = y_1$;
\begin{tabbing}
\quad \=\quad...
...= y_l+r_l$\\
\textbf{endfor} [1mm]
\textbf{endfor} \\ [1mm]
$w = y_1$;
\end{tabbing}}
\end{minipage}}">
+2 -2
View File
@@ -165,9 +165,9 @@ Preconditioner types, corresponding strings and default choices.
<TD ALIGN="LEFT"><code>'ML'</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=221>Multi-level hybrid preconditioner (additive on the
same level and multiplicative through the levels),
with post-smoothing only.
with pre- and post-smoothing.
Number of levels: 2.
Post-smoother: RAS with overlap 1 and ILU(0)
Smoother: RAS with overlap 1 and ILU(0)
on the local blocks.
Aggregation: decoupled smoothed aggregation with
threshold <IMG
+12 -10
View File
@@ -108,7 +108,7 @@ Setup and application of the default multi-level Schwarz preconditioner.
! preconditioner
type(mld_dprec_type) :: P
! right-hand side and solution vectors
real(kind(1.d0)) :: b(:), x(:)
type(psb_d_vect_type) :: b, x
... ...
!
! initialize the parallel environment
@@ -122,8 +122,9 @@ Setup and application of the default multi-level Schwarz preconditioner.
!
! initialize the default multi-level preconditioner, i.e. hybrid
! Schwarz, using RAS (with overlap 1 and ILU(0) on the blocks)
! as post-smoother and 4 block-Jacobi sweeps (with UMFPACK LU
! on the blocks) as distributed coarse-level solver
! as pre- and post-smoother and 4 block-Jacobi sweeps
! (with UMFPACK LU on the blocks) as distributed coarse-level
! solver.
call mld_precinit(P,'ML',info)
!
! build the preconditioner
@@ -208,9 +209,10 @@ Setup of a hybrid three-level Schwarz preconditioner.</CAPTION>
! 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_precset(P,mld_smoother_type_,'BJAC',info)
call mld_precset(P,mld_coarse_mat_,'REPL',info)
call mld_precset(P,mld_coarse_solve_,'UMF',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)
... ...
</PRE>
</TD></TR>
@@ -240,9 +242,9 @@ Setup of an additive three-level Schwarz preconditioner.</CAPTION>
! 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_precset(P,mld_ml_type_,'ADD',info)
call_mld_precset(P,mld_smoother_pos_,'TWOSIDE',info)
call mld_precset(P,mld_coarse_sweeps_,5,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)
... ...
</PRE>
</TD></TR>
@@ -269,7 +271,7 @@ Setup of a one-level Schwarz preconditioner.</CAPTION>
... ...
! set RAS with overlap 2 and ILU(0) on the local blocks
call mld_precinit(P,'AS',info)
call mld_precset(P,mld_sub_ovr_,2,info)
call mld_precset(P,'SUB_OVR',2,info)
... ...
</PRE>
</TD></TR>
+25 -9
View File
@@ -193,7 +193,7 @@ according to their needs.
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1266"></A>
<DIV ALIGN="CENTER"><A NAME="1267"></A>
<TABLE>
<CAPTION><STRONG>Table 2:</STRONG>
Parameters defining the type of multi-level preconditioner.
@@ -225,7 +225,7 @@ Parameters defining the type of multi-level preconditioner.
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><code>mld_smoother_pos_</code> <BR><code>SMOOTHER_POS</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=57><TT>'PRE'</TT> <TT>'POST'</TT> <TT>'TWOSIDE'</TT></TD>
<TD ALIGN="LEFT"><TT>'POST'</TT></TD>
<TD ALIGN="LEFT"><TT>'TWOSIDE'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=198>``Position'' of the smoother: pre-smoother, post-smoother,
pre- and post-smoother.</TD>
</TR>
@@ -238,7 +238,7 @@ Parameters defining the type of multi-level preconditioner.
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1268"></A>
<DIV ALIGN="CENTER"><A NAME="1269"></A>
<TABLE>
<CAPTION><STRONG>Table 3:</STRONG>
Parameters defining the one-level preconditioner used as smoother.
@@ -339,7 +339,7 @@ Parameters defining the one-level preconditioner used as smoother.
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1270"></A>
<DIV ALIGN="CENTER"><A NAME="1271"></A>
<TABLE>
<CAPTION><STRONG>Table 4:</STRONG>
Parameters defining the aggregation algorithm.
@@ -385,12 +385,28 @@ Parameters defining the aggregation algorithm.
WIDTH="56" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img92.png"
ALT="$\in [0, 1]$"></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68>0</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68>0.05</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Threshold <IMG
WIDTH="13" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img93.png"
ALT="$\theta$"> in the aggregation algorithm.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><code>mld_aggr_scale_</code> <BR><code>AGGR_SCALE</code></TD>
<TD ALIGN="LEFT"><code>real(</code><I>kind_parameter</I><code>)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68>Any&nbsp;real&nbsp;num. <IMG
WIDTH="56" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img92.png"
ALT="$\in [0, 1]$"></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68>1.0</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Scale factor applied to the threshold going
from level <IMG
WIDTH="33" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img94.png"
ALT="$ilev$"> to level <IMG
WIDTH="63" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
SRC="img95.png"
ALT="$ilev+1$">.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><code>mld_aggr_omega_alg_</code> <BR><code>AGGR_OMEGA_ALG</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68><TT>'EIG_EST'</TT> <TT>'USER_CHOICE'</TT></TD>
@@ -426,7 +442,7 @@ Parameters defining the aggregation algorithm.
-->
<IMG
WIDTH="113" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img94.png"
SRC="img96.png"
ALT="$4/(3\rho(D^{-1}A))$"></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Damping parameter <IMG
WIDTH="16" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
@@ -438,7 +454,7 @@ Parameters defining the aggregation algorithm.
otherwise it is computed by the library, using the
selected estimate of the spectral radius <IMG
WIDTH="73" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img95.png"
SRC="img97.png"
ALT="$\rho(D^{-1}A)$"> of
<IMG
WIDTH="50" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
@@ -454,7 +470,7 @@ Parameters defining the aggregation algorithm.
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1273"></A>
<DIV ALIGN="CENTER"><A NAME="1274"></A>
<TABLE>
<CAPTION><STRONG>Table 5:</STRONG>
Parameters defining the coarse-space correction at the coarsest
@@ -512,7 +528,7 @@ level.</CAPTION>
<TD ALIGN="LEFT"><code>integer</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=91>Any&nbsp;int.&nbsp;num.&nbsp;<IMG
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img96.png"
SRC="img98.png"
ALT="$&gt; 0$"></TD>
<TD ALIGN="LEFT">4</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Number of Block-Jacobi sweeps when 'BJAC' is used as
+10 -10
View File
@@ -69,14 +69,14 @@ This routine computes <!-- MATH
-->
<IMG
WIDTH="117" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img97.png"
ALT="$y = op(M^{-1}) x$">, where <IMG
SRC="img99.png"
ALT="$y = op(M^{-1})\, x$">, where <IMG
WIDTH="23" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img60.png"
ALT="$M$"> is a previously built
preconditioner, stored into <code>p</code>, and <IMG
WIDTH="22" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img98.png"
SRC="img100.png"
ALT="$op$">
denotes the preconditioner itself or its transpose, according to
the value of <code>trans</code>.
@@ -106,7 +106,7 @@ and hence it is completely transparent to the user.
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34>&nbsp;</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>The local part of the vector <IMG
WIDTH="14" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img99.png"
SRC="img101.png"
ALT="$x$">. Note that <I>type</I> and
<I>kind_parameter</I> must be chosen according
to the real/complex, single/double precision version of MLD2P4 under use.</TD>
@@ -117,7 +117,7 @@ and hence it is completely transparent to the user.
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34>&nbsp;</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>The local part of the vector <IMG
WIDTH="14" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img100.png"
SRC="img102.png"
ALT="$y$">. Note that <I>type</I> and
<I>kind_parameter</I> must be chosen according
to the real/complex, single/double precision version of MLD2P4 under use.</TD>
@@ -144,28 +144,28 @@ and hence it is completely transparent to the user.
-->
<IMG
WIDTH="132" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img101.png"
SRC="img103.png"
ALT="$op(M^{-1}) = M^{-1}$">;
if <code>trans</code> = <code>'T','t'</code> then <!-- MATH
$op(M^{-1}) = M^{-T}$
-->
<IMG
WIDTH="135" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
SRC="img102.png"
SRC="img104.png"
ALT="$op(M^{-1}) = M^{-T}$">
(transpose of <IMG
WIDTH="48" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img103.png"
SRC="img105.png"
ALT="$M^{-1})$">; if <code>trans</code> = <code>'C','c'</code> then <!-- MATH
$op(M^{-1}) = M^{-C}$
-->
<IMG
WIDTH="136" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
SRC="img104.png"
SRC="img106.png"
ALT="$op(M^{-1}) = M^{-C}$">
(conjugate transpose of <IMG
WIDTH="48" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img103.png"
SRC="img105.png"
ALT="$M^{-1})$">.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><code>work</code></TD>
+1 -1
View File
@@ -63,7 +63,7 @@ Mathematics Department, Macquarie University, Sydney.
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
<P>
The translation was initiated by Salvatore Filippone on 2015-10-14
The translation was initiated by Filippone on 2015-12-17
<BR><HR>
</BODY>
+4850 -4275
View File
File diff suppressed because it is too large Load Diff
+14 -12
View File
@@ -85,9 +85,9 @@ Additive Schwarz & \verb|'AS'| & Restricted Additive Schwarz (RAS),
with overlap 1 and ILU(0) on the local blocks. \\ \hline
Multilevel &\verb|'ML'| & Multi-level hybrid preconditioner (additive on the
same level and multiplicative through the levels),
with post-smoothing only.
with pre- and post-smoothing.
Number of levels: 2.
Post-smoother: RAS with overlap 1 and ILU(0)
Smoother: RAS with overlap 1 and ILU(0)
on the local blocks.
Aggregation: decoupled smoothed aggregation with
threshold $\theta = 0$.
@@ -151,7 +151,7 @@ the corresponding Fortran 95 codes are available in \verb|examples/fileread/|.
! preconditioner
type(mld_dprec_type) :: P
! right-hand side and solution vectors
real(kind(1.d0)) :: b(:), x(:)
type(psb_d_vect_type) :: b, x
... ...
!
! initialize the parallel environment
@@ -165,8 +165,9 @@ the corresponding Fortran 95 codes are available in \verb|examples/fileread/|.
!
! initialize the default multi-level preconditioner, i.e. hybrid
! Schwarz, using RAS (with overlap 1 and ILU(0) on the blocks)
! as post-smoother and 4 block-Jacobi sweeps (with UMFPACK LU
! on the blocks) as distributed coarse-level solver
! as pre- and post-smoother and 4 block-Jacobi sweeps
! (with UMFPACK LU on the blocks) as distributed coarse-level
! solver.
call mld_precinit(P,'ML',info)
!
! build the preconditioner
@@ -249,9 +250,10 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
! 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_precset(P,mld_smoother_type_,'BJAC',info)
call mld_precset(P,mld_coarse_mat_,'REPL',info)
call mld_precset(P,mld_coarse_solve_,'UMF',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)
... ...
\end{verbatim}
}
@@ -272,9 +274,9 @@ 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_precset(P,mld_ml_type_,'ADD',info)
call_mld_precset(P,mld_smoother_pos_,'TWOSIDE',info)
call mld_precset(P,mld_coarse_sweeps_,5,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)
... ...
\end{verbatim}
}
@@ -292,7 +294,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,mld_sub_ovr_,2,info)
call mld_precset(P,'SUB_OVR',2,info)
... ...
\end{verbatim}
}
+7 -2
View File
@@ -199,7 +199,7 @@ according to their needs.
block Jacobi, AS. \\ \hline
\verb|mld_smoother_pos_| \break \verb|SMOOTHER_POS| & \verb|character(len=*)|
& \texttt{'PRE'} \ \ \ \texttt{'POST'} \ \ \ \texttt{'TWOSIDE'}
& \texttt{'POST'}
& \texttt{'TWOSIDE'}
& ``Position'' of the smoother: pre-smoother, post-smoother,
pre- and post-smoother. \\
\hline
@@ -289,8 +289,13 @@ according to their needs.
(i.e.\ using the tentative prolongator). \\ \hline
\verb|mld_aggr_thresh_| \break \verb|AGGR_THRESH| & \verb|real(|\emph{kind\_parameter}\verb|)|
& Any~real~num. $\in [0, 1]$
& 0
& 0.05
& Threshold $\theta$ in the aggregation algorithm. \\ \hline
\verb|mld_aggr_scale_| \break \verb|AGGR_SCALE| & \verb|real(|\emph{kind\_parameter}\verb|)|
& Any~real~num. $\in [0, 1]$
& 1.0
& Scale factor applied to the threshold going
from level $ilev$ to level $ilev+1$. \\ \hline
\verb|mld_aggr_omega_alg_| \break \verb|AGGR_OMEGA_ALG|& \verb|character(len=*)|
& \texttt{'EIG\_EST'} \hspace{2.5cm} \texttt{'USER\_CHOICE'}
& \texttt{'EIG\_EST'}