diff --git a/docs/amg4psblas_1.0-guide.pdf b/docs/amg4psblas_1.0-guide.pdf index 37305504..93917123 100644 Binary files a/docs/amg4psblas_1.0-guide.pdf and b/docs/amg4psblas_1.0-guide.pdf differ diff --git a/docs/html/userhtml.css b/docs/html/userhtml.css index 2e1d7cd1..fe7f3289 100644 --- a/docs/html/userhtml.css +++ b/docs/html/userhtml.css @@ -13,32 +13,34 @@ .cmbx-12{font-size:109%; font-weight: bold;} .cmbx-12{ font-weight: bold;} .cmbx-12{ font-weight: bold;} -.cmtt-12{font-size:109%;font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} +.cmtt-12{font-size:109%;font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} .cmcsc-10x-x-120{font-size:109%;} .cmr-8{font-size:72%;} .cmmi-12{font-size:109%;font-style: italic;} .cmmi-8{font-size:72%;font-style: italic;} .cmsy-8{font-size:72%;} +.tctt-1200{font-size:109%;font-family: monospace,monospace;} .cmmi-10x-x-109{font-style: italic;} .cmsy-10x-x-109{} -.cmtt-10x-x-109{font-family: monospace;} -.cmtt-10x-x-109{font-family: monospace;} -.cmtt-10x-x-109{font-family: monospace;} +.cmtt-10x-x-109{font-family: monospace,monospace;} +.cmtt-10x-x-109{font-family: monospace,monospace;} +.cmtt-10x-x-109{font-family: monospace,monospace;} .cmcsc-10x-x-109{} -.cmtt-10{font-size:90%;font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} +.cmtt-10{font-size:90%;font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} .cmbx-10x-x-109{ font-weight: bold;} .cmbx-10x-x-109{ font-weight: bold;} .cmbx-10x-x-109{ font-weight: bold;} .cmcsc-10{font-size:90%;} .small-caps{font-variant: small-caps; } -p.noindent { text-indent: 0em } -td p.noindent { text-indent: 0em; margin-top:0em; } -p.nopar { text-indent: 0em; } -p.indent{ text-indent: 1.5em } +p{margin-top:0;margin-bottom:0} +p.indent{text-indent:0;} +p + p{margin-top:1em;} +p + div, p + pre {margin-top:1em;} +div + p, pre + p {margin-top:1em;} @media print {div.crosslinks {visibility:hidden;}} a img { border-top: 0; border-left: 0; border-right: 0; } center { margin-top:1em; margin-bottom:1em; } @@ -61,7 +63,7 @@ div.obeylines-v p { margin-top:0; margin-bottom:0; } td.displaylines {text-align:center; white-space:nowrap;} .centerline {text-align:center;} .rightline {text-align:right;} -div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; } +div.verbatim {font-family: monospace,monospace; white-space: nowrap; text-align:left; clear:both; } .fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } div.fbox {display:table} div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } @@ -94,18 +96,16 @@ td.td01{ padding-left:0pt; padding-right:5pt; } td.td10{ padding-left:5pt; padding-right:0pt; } td.td11{ padding-left:5pt; padding-right:5pt; } table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } -.hline hr, .cline hr{ height : 1px; margin:0px; } +.hline hr, .cline hr{ height : 0px; margin:0px; } +.hline td, .cline td{ padding: 0; } +.hline hr, .cline hr{border:none;border-top:1px solid black;} .tabbing-right {text-align:right;} -span.TEX {letter-spacing: -0.125em; } -span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} -a span.TEX span.E {text-decoration: none; } -span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} -span.LATEX span.TEX{ position:relative; left: -0.4em; } div.float, div.figure {margin-left: auto; margin-right: auto;} div.float img {text-align:center;} div.figure img {text-align:center;} -.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} -.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} +.marginpar,.reversemarginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p,.reversemarginpar p{margin-top:0.4em; margin-bottom:0.4em;} +.reversemarginpar{float:left;} table.equation {width:100%;} .equation td{text-align:center; } td.equation { margin-top:1em; margin-bottom:1em; } @@ -148,10 +148,11 @@ div.abstract {width:100%;} .Ovalbox-thick { padding-left:3pt; padding-right:3pt; border:solid thick; } .shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; } .doublebox { padding-left:3pt; padding-right:3pt; border-style:double; border:solid thick; } +.rotatebox{display: inline-block;} .figure img.graphics {margin-left:10%;} .lstlisting .label{margin-right:0.5em; } -div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; } -div.lstinputlisting{ font-family: monospace; white-space: nowrap; } +div.lstlisting{font-family: monospace,monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; } +div.lstinputlisting{ font-family: monospace,monospace; white-space: nowrap; } .lstinputlisting .label{margin-right:0.5em;} #TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-1{border-collapse:collapse;} @@ -185,9 +186,9 @@ div.lstinputlisting{ font-family: monospace; white-space: nowrap; } #TBL-5{border-collapse:collapse;} #TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-5{border-collapse:collapse;} -td#TBL-5-10-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-5-11-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-5-10-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-5-11-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-5-12-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6{border-collapse:collapse;} #TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} @@ -200,8 +201,8 @@ td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-6{border-collapse:collapse;} #TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6{border-collapse:collapse;} -td#TBL-6-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-6-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-6-5-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-6-6-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7{border-collapse:collapse;} #TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} @@ -214,11 +215,11 @@ td#TBL-6-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-7{border-collapse:collapse;} #TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7{border-collapse:collapse;} -td#TBL-7-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-7-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-7-7-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-7-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-7-13-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-5-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-6-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-7-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-12-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-13-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-8{border-collapse:collapse;} #TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} diff --git a/docs/html/userhtml0x.png b/docs/html/userhtml0x.png index 96c5cb9b..f004430a 100644 Binary files a/docs/html/userhtml0x.png and b/docs/html/userhtml0x.png differ diff --git a/docs/html/userhtml1x.png b/docs/html/userhtml1x.png index 4c10c200..20f909a7 100644 Binary files a/docs/html/userhtml1x.png and b/docs/html/userhtml1x.png differ diff --git a/docs/html/userhtmlli5.html b/docs/html/userhtmlli5.html index 6525b8c9..a6336dcb 100644 --- a/docs/html/userhtmlli5.html +++ b/docs/html/userhtmlli5.html @@ -34,6 +34,20 @@ class="cmr-12">References class="cmr-12">[1]   A. Aprovitola, P. D’Ambra, F. Denaro, D. di Serafino, S. Filippone, + Scalable algebraic multilevel preconditioners with application to CFD, in Proc. + of CFD 2008, LNCSE, 74, (2010), 15–27. +

+

+ [2]   P..

[2][3]    S. Filippone, Sparse approximate inverse preconditioners on high performance GPU platforms, Comput. Math. Appl. +class="cmr-12">, Comput. Math. Appl., 71 (2016), no.71, (2016), no. 3, 693–711.

[3][4]   , Computing, 63, 1999, 233–263.

[4][5]   , SIAM, 2000.

[5][6]   Extending class="cmti-12">PSBLAS to Build Parallel Schwarz Preconditioners, in J. Dongarra, + + + K. Madsen, J.State of the Art in Scientific Computing, Lecture Notes in Comput Springer, 2005, 593–602.

- - -

[6][7]   Computing, 18 (3) 2007, 223–239.

[7][8]   (2), 1999, 792–797.

[8][9]    Pothen, Distributed-memory parallel algorithms for matching and coloring, in PCO11 New Trends in Parallel Computing and Optimization, +class="cmr-12">, in PCO’11 New Trends in Parallel Computing and Optimization, IEEE International Symposium on Parallel and Distributed Processing Workshops, IEEE CS, 2011.

- [9][10]   57 (11-12), 2007, 1181-1196.

[10][11]   , ACM Trans. Math. Softw., 37(3), 2010, art. 30.

[11][12]   on compatible weighted matching, Computing and Visualization in Science, 16, (2013) 59–76. + + +

[12][13]   package for bootstrap AMG based on graph weighted matchi class="cmr-12">, ACM Transactions on Mathematical Software, 44, (2018) 39:1–39:25. - - -

[13][14]   .

[14][15]   )

[15][16]   SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 7

[16][17]   Software, 16 (1) 1990, 1–17.

[17][18]   Transactions on Mathematical Software, 14 (1) 1988, 1–17.

[18][19]   S. Filippone, P. D’Ambra, M. Colajanni, Using a Parallel Library of + Sparse Linear Algebra in a Fluid Dynamics Application Code on Linux + Clusters, in Proc. of ParCo 2001, Parallel Computing, Advances and Current + Issues, 2002. + + + +

+

+ [20]   .

[19][21]   . ACM Transactions on on Mathematical Software, 38 (4), 2012, art. 23. - - -

[20][22]   Transactions on Mathematical Software, 26 (4), 2000, 527–55

[21][23]   2016, 23:501-518

[22][24]   , MIT Press, 1998.

[23][25]   Mathematical Software, 5 (3), 1979, 308–323.

[24][26]   Distributed-memory Sparse Direct Solver for Unsymmetric Linear S class="cmr-12">, ACM Transactions on Mathematical Software, 29 (2), 2003, 110–140. + + +

[25][27]   Numerical Linear Algebra with Applications, 15 (5), 2008, 473R

[26][28]   , 2nd edition, SIAM, 2003.

- - -

[27][29]   University Press, 1996.

[28][30]   Press, 1998.

[29][31]    Oosterlee, Multigrid, Academic Press, 2001.

[30][32]   editor, Proceedings of SuperComputing 2000, Dallas, 2000.

[31][33]   ) provides parallel Algebraic MultiGrid (AMG) preconditioners (se class="cmr-12">e.g., [45, 2931]), to be used in the iterative solution of linear systems, (K-cycle) [45, 2527]; they can be combined with Jacobi, hybrid forward/backwardversion [1314].

a decoupled version of the smoothed aggregation procedure propose class="cmr-12"> [34,  3133], and already included in the previous versions of the package [67, 1011]; @@ -183,17 +183,17 @@ class="cmr-12">Weighted Matching introduced in [1112, 1213] and described in detail in [1314];

computational framework [2022, 1921]. PSBLAS provides basic linear algebra operators and multilevel (i.e., AMG) preconditioners with the Krylov solver class="cmr-12">PSBLAS [1820].

type

e

string

g

der




No preconditioner No preconditioner

NONE

Considered to use the PSBLAS Krylov solvers with no preconditioner.




Diagonal Diagonal

DIAGL1-JACOBI

Diagonal preconditioner. For any zero diagonal entry of the matrix to be preconditioned, the corresponding entry @@ -308,7 +308,7 @@ of the preconditioner is set to 1.




Gauss-Seidel Gauss-Seidel

GSL1-GS

Hybrid Gauss-Seidel (forward), that is, global block Jacobi with Gauss-Seidel as local solver.




Symmetrized Gauss-SeidelSymmetrized Gauss-Seidel

FBGSL1-FBGS

Symmetrized hybrid Gauss-Seidel, that is, forward Gauss-Seidel followed by backward Gauss-Seidel.




Block Jacobi Block Jacobi

BJACL1-BJAC

Block-Jacobi with ILU(0) on the local blocks.




Additive Schwarz Additive Schwarz

AS

Additive Schwarz (AS), with overlap 1 and ILU(0) on the local blocks.




Multilevel Multilevel

ML

V-cycle with one hybrid forward Gauss-Seidel (GS) sweep as pre-smoother and one hybrid backward diff --git a/docs/html/userhtmlse6.html b/docs/html/userhtmlse6.html index cf4b33c9..b4614460 100644 --- a/docs/html/userhtmlse6.html +++ b/docs/html/userhtmlse6.html @@ -170,33 +170,33 @@ cellspacing="0" cellpadding="0" >

smoother

smoother

class(amg_x_base_smoother_type)

The user-defined new smoother to be employed in the preconditioner.

solver

solver

class(amg_x_base_solver_type)

The user-defined new solver to be employed in the preconditioner.

PSBLAS error handling routines; for further details see the PSBLA [1820]. diff --git a/docs/html/userhtmlse9.html b/docs/html/userhtmlse9.html index 220606fb..21676acb 100644 --- a/docs/html/userhtmlse9.html +++ b/docs/html/userhtmlse9.html @@ -91,7 +91,7 @@ class="cmr-12">Trolling, insulting or derogatory comments, and personal or polit class="cmr-12">Public or private harassment

  • Publishing others private information, such as a physical or email address, +class="cmr-12">Publishing others’ private information, such as a physical or email address, without their explicit permission
  • @@ -234,7 +234,7 @@ class="cmr-12">_of_conduct .html. Community Impact Guidelines were inspired by Mozillas code of conduct +class="cmr-12">. Community Impact Guidelines were inspired by Mozilla’s code of conduct enforcement ladder. For answers to common questions about this code of conduct, see BLAS
    [1617, 1718, 2325] Many vendors provide optimized versions of BLAS; if no MPI
    [2224, 2830] A version of MPI is available on most high-performance computing PSBLAS
    [1820, 2022] Parallel Sparse BLAS (PSBLAS) is available from

    a a

    type(in).

    The sparse matrix structure containing the local part of the matrix , single/double precision version of AMG4PSBLAS class="cmr-12">under use. See the PSBLAS User’s Guide for details [1820].

    desc_adesc_a

    type(in).

    The communication descriptor of a. See the PSBLAS User’s Guide class="cmr-12">for details [1820].

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details.

    amold amold

    class( optional.

    The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same class="cmr-12">processes. See the PSBLAS User’s Guide for details [1820].

    vmold vmold

    class( optional.

    The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

    imold imold

    class( optional.

    The desired dynamic type for internal integer vector components; this allows e.g. running on GPUs. diff --git a/docs/html/userhtmlsu11.html b/docs/html/userhtmlsu11.html index 405e9838..79602b0e 100644 --- a/docs/html/userhtmlsu11.html +++ b/docs/html/userhtmlsu11.html @@ -90,9 +90,9 @@ cellspacing="0" cellpadding="0" >

    a a

    type(in).

    The sparse matrix structure containing the local part of the matrix , single/double precision version of AMG4PSBLAS class="cmr-12">under use. See the PSBLAS User’s Guide for details [1820].

    desc_adesc_a

    type(in).

    The communication descriptor of a. See the PSBLAS User’s Guide class="cmr-12">for details [1820].

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details.

    amold amold

    class( optional.

    The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same class="cmr-12">processes. See the PSBLAS User’s Guide for details [1820].

    vmold vmold

    class( optional.

    The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

    imold imold

    class( optional.

    The desired dynamic type for internal integer vector components; this allows e.g. running on GPUs.

    The method can be used to build multilevel preconditioners too. diff --git a/docs/html/userhtmlsu12.html b/docs/html/userhtmlsu12.html index 4a36f3b8..8f1f65bf 100644 --- a/docs/html/userhtmlsu12.html +++ b/docs/html/userhtmlsu12.html @@ -96,9 +96,9 @@ cellspacing="0" cellpadding="0" >

    x x

    type(kind_parameter), dimension(:), intent(in)—.

    The local part of the vector x, single/double precision version of AMG4PSBLAS under use.

    y y

    type(kind_parameter), dimension(:), intent(out)—.

    The local part of the vector y, single/double precision version of AMG4PSBLAS under use.

    desc_adesc_a

    type(in).

    The communication descriptor associated to the matrix to be preconditioned.

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details.

    trans trans

    character((in).

    If trans -1).

    work work

    type(kind_parameter), dimension(:), optional, target—.

    Workspace. Its size should be at least 4, single/double precision version of AMG4PSBLAS under use. diff --git a/docs/html/userhtmlsu13.html b/docs/html/userhtmlsu13.html index 236f088f..b482a53d 100644 --- a/docs/html/userhtmlsu13.html +++ b/docs/html/userhtmlsu13.html @@ -57,9 +57,9 @@ cellspacing="0" cellpadding="0" >

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section for details. diff --git a/docs/html/userhtmlsu14.html b/docs/html/userhtmlsu14.html index 947fd021..7720e669 100644 --- a/docs/html/userhtmlsu14.html +++ b/docs/html/userhtmlsu14.html @@ -75,9 +75,9 @@ cellspacing="0" cellpadding="0" >

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details.

    iout iout

    integer, optional.

    The id of the file where the preconditioner description will be printed; the default is the standard output.

    root root

    integer, optional.

    The id of the process where the preconditioner description will be printed; the default is psb_root_.

    verbosity verbosity

    integer, optional.

    The verbosity level of the description. Default value is 0. For a distributed multilevel preconditioner the size of the coarsematrices on every process. diff --git a/docs/html/userhtmlsu15.html b/docs/html/userhtmlsu15.html index f3adc621..69f7e6e9 100644 --- a/docs/html/userhtmlsu15.html +++ b/docs/html/userhtmlsu15.html @@ -77,9 +77,9 @@ cellspacing="0" cellpadding="0" >

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details.

    amold amold

    class( optional.

    The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same class="cmr-12">processes. See the PSBLAS User’s Guide for details [1820].

    pout pout

    type(out).

    The copy of the preconditioner data structure. Note that x , single/double precision version of AMG4PSBLAS under use.

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details.

    global global

    logical, optional.

    Whether the global or local preconditioner memory occupatio is false.. Return memory footprint in bytes. @@ -333,9 +333,9 @@ cellspacing="0" cellpadding="0" >

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details.

    vmold vmold

    class( optional.

    The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details. diff --git a/docs/html/userhtmlsu2.html b/docs/html/userhtmlsu2.html index 9e4552ba..4a2ae192 100644 --- a/docs/html/userhtmlsu2.html +++ b/docs/html/userhtmlsu2.html @@ -44,7 +44,7 @@ class="cmbx-12">UMFPACK

    [1415] A sparse LU factorization package included in the SuiteSparse MUMPS
    [12] A sparse LU factorization package available from SuperLU
    [1516] A sparse LU factorization package available from _Dist
    [2426] A sparse LU factorization package available from the same  ‘--prefix=$HOME$HOME’. 
    the use of the PSBLAS routines, see the PSBLAS User’s Guide class="cmr-12"> [1820].

    contxt contxt

    type(in).

    The communication context.

    ptype ptype

    character(in) .

    The type of preconditioner. Its values are specified in Table 1.

    Note that strings are case insensitive.

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details. diff --git a/docs/html/userhtmlsu8.html b/docs/html/userhtmlsu8.html index faa34dc7..63fa1a91 100644 --- a/docs/html/userhtmlsu8.html +++ b/docs/html/userhtmlsu8.html @@ -79,9 +79,9 @@ cellspacing="0" cellpadding="0" >

    what what

    character(len=*).

    The parameter to be set. It can be specified through its name; the 8.

    val   

    integer or in).

    The value of the parameter to be set. The list of allowed values and len=*), it is also treated as case insensitive.

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details.

    ilev ilev

    integer,in).

    For the multilevel preconditioner, the level at which the 8).

    ilmax ilmax

    integer,in).

    For the multilevel preconditioner, when both ilev The levels are numbered in increasing order starting from the fin one, i.e., level 1 is the finest level.

    pos pos

    character(in).

    Whether the other arguments apply only to the pre-smoother not concern the smoothers, class="cmtt-12">pos is ignored.

    idx idx

    integer,in).

    An auxiliary input argument that can be passed to the underlying






    what a type e

    val val

    dfault t

    cnts






    ML_CYCLE

    character(len=*) =*)

    VCYCLE

    ADD

    VCYCLE

    Multilevel cycle: V-cycle, W-cycle, K-cycle, and additive composition.






    CYCLE_SWEEPS

    integer integer

    Any integer

    number 1

    1 ≥ 1

    1

    Number of multilevel cycles.







    Table 2:




    what a type e

    val val

    dfault t

    cnts






    MIN_COARSE_SIZE_PER_PROCESS

    integer integer

    Any number

    > 0

    200 > 0

    200

    Coarse size threshold per process. The aggregation stops if the global number of variables of the computed coarsest matrix @@ -723,17 +723,17 @@ multiplied by the number of processes (see Note).






    MIN_COARSE_SIZE

    integer integer

    Any number

    > 0

    -1 > 0

    -1

    Coarse size threshold. The aggregation stops if the global number of variables of the computed coarsest matrix is lower @@ -746,17 +746,17 @@ class="cmtt-10x-x-109">MIN_COARSE_SIZE_PER_PROCESS.






    MIN_CR_RATIO

    real real

    Any number

    > 1

    1.5 > 1

    1.5

    Minimum coarsening ratio. The aggregation stops if the ratio between the global matrix dimensions at @@ -764,23 +764,23 @@ two consecutive levels is lower than or equal to this threshold (see Note).






    MAX_LEVS

    integer integer

    Any integer

    number > 1

    20 > 1

    20

    Maximum number of levels. The aggregation stops if the number of levels reaches this value (see Note).






    PAR_AGGR_ALG

    character(len=*) =*)

    ’DEC’, ’SYMDEC’, ’COUPLED’ ’COUPLED’

    ’DEC’ ’DEC’

    Parallel aggregation algorithm.

    the SYMDEC option applies decoupled @@ -808,7 +808,7 @@ class="cmmi-10x-x-109">AT .






    AGGR_TYPE

    character(len=*) =*)

    SOC1, MATCHBOXP

    SOC1

    Type of aggregation algorithm: currently, for the decoupled aggregation we implement two measures of strength of connection, the one by Vaněk, Mandel and Brezina [31], +href="userhtmlli5.html#XVANEK_MANDEL_BREZINA">33], and the one by Gratton et al [21]. The +href="userhtmlli5.html#XGrHeJi:16">23]. The coupled aggregation is based on a parallel version of the half-approximate matching implemented in the MatchBox-P software package [8]. +href="userhtmlli5.html#XMatchBoxP">9].






    AGGR_SIZE

    integer integer

    Any integer

    power of 2, with @@ -863,8 +863,8 @@ with class="cmtt-10x-x-109">aggr_size -2

    4

    4

    Maximum size of aggregates when the coupled aggregation based on matching is applied. For aggressive coarsening @@ -876,7 +876,7 @@ and ’MATCHBOXP’






    AGGR_PROL

    character(len=*) =*)

    SMOOTHED, UNSMOOTHED

    SMOOTHED

    Prolongator used by the aggregation algorithm: smoothed or unsmoothed (i.e., tentative prolongator).






    Note. The aggregation algorithm stops when at least one of the following criteria is met: the coarse size threshold,
    -
    the minimum coarsening ratio, or the maximum number of levels is reached.
    -
    Therefore, the actual number of levels may be smaller than the specified maximum number of levels.
    -




    the minimum coarsening ratio, or the maximum number of levels is reached.
    +
    Therefore, the actual number of levels may be smaller than the specified maximum number of levels.
    +




    @@ -951,7 +951,7 @@ id="TBL-6-3">




    what a type e

    val val

    dfault t

    cnts






    AGGR_ORD

    character(len=*) =*)

    ’NATURAL’

    ’DEGREE’ ’DEGREE’

    ’NATURAL’ ’NATURAL’

    Initial ordering of indices for the decoupled aggregation algorithm: either natural ordering or sorted by @@ -1009,7 +1009,7 @@ descending degrees of the nodes in the matrix graph.






    AGGR_THRESH

    real(kind_parameter) )

    Any real

    number  [0,1]

    0.01 ,1]

    0.01

    The threshold θ in the strength of connection algorithm. See also the note at the bottom of this table.






    AGGR_FILTER

    character(len=*) =*)

    ’FILTER’

    ’NOFILTER’ ’NOFILTER’

    ’NOFILTER’ ’NOFILTER’

    Matrix used in computing the smoothed prolongator: filtered or unfiltered.






    Note. Different thresholds at different levels, such as those used in [31, Section 5.1], can be easily set by invoking the rou-
    -
    tine 33, Section 5.1], can be easily set by invoking the rou-
    +
    tine set with the parameter ilev.
    -





    Table 4:




    what a type e

    val val

    dfault t

    cnts






    COARSE_MAT

    character(len=*) =*)

    DIST

    REPL

    REPL

    Coarsest matrix layout: distributed among the processes or replicated on each of them.






    COARSE_SOLVE

    character(len=*) =*)

    MUMPS

    KRM

    See Note.’

    See Note.

    Solver used at the coarsest level: sequential LU from MUMPS, UMFPACK, or SuperLU (plus triangular solve); distributed LU from @@ -1230,7 +1230,7 @@ UMFPACK and SuperLU_Dist are available only in double precision.






    COARSE_SUBSOLVE

    character(len=*) =*)

    ILU

    AINV

    See Note.’

    See Note.

    Solver for the diagonal blocks of the coarsest matrix, in case the block Jacobi solver is chosen as coarsest-level solver: ILU(t); note that approximate inverses are specifically suited for GPUs since they do not employ triangular system solve kernels, see [2]. Note that UMFPACK +href="userhtmlli5.html#XBERTACCINIFILIPPONE">3]. Note that UMFPACK and SuperLU_Dist are available only in double precision.






    Note. Defaults for COARSE_SOLVE and COARSE_SUBSOLVE are chosen in the following order:
    -
    single precision version –
    single precision version – MUMPS if installed, then SLU if installed, ILU otherwise;
    -
    double precision version –
    double precision version – UMF if installed, then MUMPS if installed, then SLU if installed, ILU otherwise.
    -




    what a type e

    val val

    dfault t

    cts






    COARSE_SWEEPS

    integer integer

    Any integer

    number > -0

    10

    10

    Number of sweeps when JACOBI, GS or BJAC is chosen as coarsest-level solver.






    COARSE_FILLIN

    integer integer

    Any integer

    number -0

    0

    0

    Fill-in level p of the ILU factorizations and first fill-in for the approximate inverses.






    COARSE_ILUTHRS

    real(kind_parameter) )

    Any real

    number -0

    0

    0

    Drop tolerance t in the ILU(p,t) factorization and first drop-tolerance for the approximate inverses.






    Note. Further options for coarse solvers are contained in Table 6.
    -
    For a first use it is suggested to use the default options obtained by simply selecting the solver type.
    -
    For a first use it is suggested to use the default options obtained by simply selecting the solver type.
    +




    @@ -1468,7 +1468,7 @@ id="TBL-8-3">




    what a type e

    val val

    dfault t

    cnts






    BJAC_STOP

    character(len=*) =*)

    FALSE

    TRUE

    FALSE

    Select whether to use a stopping criterion for the Block-Jacobi method used as a coarse solver.






    BJAC_TRACE

    character(len=*) =*)

    FALSE

    TRUE

    FALSE

    Select whether to print a trace for the calculated residual for the Block-Jacobi method used as a coarse solver.






    BJAC_ITRACE

    integer integer

    Any integer > 0

    -1 > 0

    -1

    Number of iterations after which a trace is to be printed.






    BJAC_RESCHECK

    integer integer

    Any integer > 0

    -1 > 0

    -1

    Number of iterations after which a residual is to be calculated.






    BJAC_STOPTOL

    real(kind_parameter) )

    Any real < -1

    0

    0

    Tolerance for the stopping criterion on the residual.






    KRM_METHOD

    character(len=*) =*)

    CG

    RGMRES

    FCG

    A string that defines the iterative method to be used. CG the Conjugate Gradient method; @@ -1671,11 +1671,11 @@ with restarting; RGMRES the Generalized Minimal Residual method with restarting. Refer to the PSBLAS guide [18] for further +href="userhtmlli5.html#XPSBLASGUIDE">20] for further information.






    KRM_KPREC

    character(len=*) =*)

    Table 1 1

    BJAC

    The one-level preconditioners from the Table 1 can be used for the coarse Krylov solver.






    KRM_SUB_SOLVE

    character(len=*) =*)

    Table 5 5

    ILU

    Solver for the diagonal blocks of the coarsest matrix preconditioner, in case the block Jacobi solver is chosen @@ -1739,7 +1739,7 @@ The same caveat from Table 5 applies here.






    KRM_GLOBAL

    character(len=*) =*)

    TRUE, FALSE

    FALSE

    Choose between a global Krylov solver, all unknowns on a single node, or a distributed one. The default choice is the distributed solver.






    KRM_EPS

    real(kind_parameter) )

    Real < 1 < 1

    10-6 6

    The stopping tolerance.






    KRM_IRST

    integer integer

    Integer

    1

    30 ≥ 1

    30

    An integer specifying the restart parameter. This is employed for the BiCGSTABL or RGMRES methods, otherwise it is ignored.






    KRM_ISTOPC

    integer integer

    Integers -1,2,3

    2

    2

    If 1 then the method uses the normwise backward error in the infinity norm; if 3 the relative residual reduction in the 2-norm is used instead; refer to the PSBLAS [18] guide +href="userhtmlli5.html#XPSBLASGUIDE">20] guide for the details.






    KRM_ITMAX

    integer integer

    Integer

    1

    40 ≥ 1

    40

    The maximum number of iterations to perform.






    KRM_ITRACE

    integer integer

    Integer

    0

    -1 ≥ 0

    -1

    If > 0 print out an informational message about convergence @@ -1861,23 +1861,23 @@ class="cmtt-10x-x-109">’ iterations. If = 0 print a message in case of convergence failure.






    KRM_FILLIN

    integer integer

    Integer

    0

    0 ≥ 0

    0

    Fill-in level p of the ILU factorizations and first fill-in for the approximate inverses.






    @@ -1912,7 +1912,7 @@ id="TBL-9-3">




    what a type e

    val val

    dfault t

    cnts






    SMOOTHER_TYPE

    character(len=*) =*)

    JACOBIL1-FBGS

    FBGS

    Type of smoother used in the multilevel -point-Jacobi and Additive Schwarz. class="cmr-10">It is ignored by one-level preconditioners.






    SUB_SOLVE

    character(len=*) =*)

    JACOBI

    AINV

    GS and and Additive Schwarz one-level preconditioners preconditioners

    The local solver to be used with the triangular system solve kernels, see [23]. See Note for details on hybrid Gauss-Seidel.






    SMOOTHER_SWEEPS

    integer integer

    Any integer

    number 00

    1 1

    Number of sweeps of the smoother or , class="cmr-10">respectively.






    SUB_OVR

    integer integer

    Any integer

    number 00

    1 1

    Number of overlap layers, for Additive Schwarz only.







    Table 7:




    what a type e

    val val

    dfault t

    cnts






    SUB_RESTR

    character(len=*) =*)

    HALO

    NONE

    HALO

    Type of restriction operator, for Additive classical Addditive Schwarz smoother and class="cmr-10">its RAS variant.






    SUB_PROL

    character(len=*) =*)

    SUM

    NONE

    NONE

    Type of prolongation operator, for Additive for its RAS variant.






    SUB_FILLIN

    integer integer

    Any integer

    number 0 0

    0 0

    Fill-in level p of the incomplete LU class="cmr-10">factorizations.






    SUB_ILUTHRS

    real(kind_parameter) )

    Any real number 0 0

    0 0

    Drop tolerance t ) class="cmr-10">factorization.






    MUMPS_LOC_GLOB

    character(len=*) =*)

    LOCAL_SOLVER

    GLOBAL_SOLVER

    GLOBAL_SOLVER

    Whether MUMPS should be used as a only on the part of the matrix local to each class="cmr-10">process.






    MUMPS_IPAR_ENTRY

    integer integer

    Any integer number number

    0 0

    Set an entry in the MUMPS integer control optional class="cmr-10">argument.






    MUMPS_RPAR_ENTRY

    real real

    Any real number Any real number

    0 0

    Set an entry in the MUMPS real control optional class="cmr-10">argument.







    Table 8:

    a a

    type(in).

    The sparse matrix structure containing the local part of the matrix , single/double precision version of AMG4PSBLAS class="cmr-12">under use. See the PSBLAS User’s Guide for details [1820].

    desc_adesc_a

    type(in).

    The communication descriptor of a. See the PSBLAS User’s Guide class="cmr-12">for details [1820].

    info info

    integer,out).

    Error code. If no error, 0 is returned. See Section 7 for details.

    diff --git a/docs/src/bibliography.tex b/docs/src/bibliography.tex index e82aa550..0920112a 100644 --- a/docs/src/bibliography.tex +++ b/docs/src/bibliography.tex @@ -8,6 +8,10 @@ %\let\refname\relax % + % + \bibitem{PCFD2006} + A. Aprovitola, P. D'Ambra, F. Denaro, D. di Serafino, S. Filippone, {\em Scalable algebraic multilevel preconditioners with application to CFD}, in Proc. of CFD 2008, LNCSE, 74, (2010), 15--27. + \bibitem{MUMPS} P.~R.~Amestoy, C.~Ashcraft, O.~Boiteau, A.~Buttari, J.~L'Excellent, C.~Weisbecker, {\em Improving multifrontal methods by means of block low-rank representations}, @@ -17,7 +21,7 @@ See also {\tt http://mumps.enseeiht.fr}. \bibitem{BERTACCINIFILIPPONE} D. Bertaccini\ and\ S. Filippone, {\em Sparse approximate inverse preconditioners on high performance GPU platforms}, -Comput. Math. Appl. {\bf 71} (2016), no.~3, 693--711. +Comput. Math. Appl., 71, (2016), no.~3, 693--711. % \bibitem{BREZINA_VANEK} M.~Brezina, P.~Van\v{e}k, @@ -123,6 +127,12 @@ ACM Transactions on Mathematical Software, 14 (1) 1988, 1--17. %E.~Efstathiou, J.~G.~Gander, %{\em Why Restricted Additive Schwarz Converges Faster than Additive Schwarz}, %BIT Numerical Mathematics, 43 (5), 2003, 945--959. +% +\bibitem{PARCO2001} +S.~Filippone, P.~D'Ambra, M.~Colajanni, +{\em Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics Application Code on Linux Clusters}, +in Proc. of ParCo 2001, Parallel Computing, Advances and Current Issues, 2002. + % \bibitem{PSBLASGUIDE} S.~Filippone, A.~Buttari, diff --git a/docs/src/userguide.pdf b/docs/src/userguide.pdf new file mode 120000 index 00000000..7b032aa3 --- /dev/null +++ b/docs/src/userguide.pdf @@ -0,0 +1 @@ +tmp/userguide.pdf \ No newline at end of file