diff --git a/docs/amg4psblas_1.0-guide.pdf b/docs/amg4psblas_1.0-guide.pdf index d083882f..d8f429ee 100644 Binary files a/docs/amg4psblas_1.0-guide.pdf and b/docs/amg4psblas_1.0-guide.pdf differ diff --git a/docs/html/index.html b/docs/html/index.html index 118ee3a4..dd54bbfb 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -3,21 +3,19 @@ - - + +

MLD2P4
AMG4PSBLAS
User’s and Reference Guide
A guide for the MultiLevel Domain Decomposition Parallel Preconditioners Package -based on PSBLAS
A guide for the Algebraic MultiGrid Preconditioners Package based on PSBLAS
Pasqua D’Ambra
Abstract -
Abstract
Contents
1 General Overview
2 Code Distribution
 Contributors
3 Configuring and Building AMG4PSBLAS
 3.1 Prerequisites
 3.2 Optional third party libraries
 3.3 Configuration options
 3.4 Bug reporting
 3.5 Example and test programs
4 Getting Started
 4.1 Examples
5 User Interface
 5.1 Method init
 5.2 Method set
 5.3 Method hierarchy_build
 5.4 Method smoothers_build
 5.5 Method build
 5.6 Method apply
 5.7 Method free
 5.8 Method descr
 5.9 Auxiliary Methods
6 Adding new smoother and solver objects to AMG4PSBLAS
7 Error Handling
A License +
B Contributor Covenant Code of Conduct
References -
References @@ -185,6 +181,7 @@ class="cmr-12">References
+ diff --git a/docs/html/userhtml.css b/docs/html/userhtml.css index add1eb7b..f8b025b4 100644 --- a/docs/html/userhtml.css +++ b/docs/html/userhtml.css @@ -16,24 +16,23 @@ .cmbx-12{ font-weight: bold;} .cmbx-12{ font-weight: bold;} .cmbx-12{ font-weight: bold;} -.cmtt-12{font-size:109%;font-family: monospace,monospace;} -.cmtt-12{font-family: monospace,monospace;} -.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-size:109%;font-family: monospace;} +.cmtt-12{font-family: monospace;} +.cmtt-12{font-family: 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,monospace;} -.cmtt-10x-x-109{font-family: monospace,monospace;} -.cmtt-10x-x-109{font-family: monospace,monospace;} +.cmtt-10x-x-109{font-family: monospace;} +.cmtt-10x-x-109{font-family: monospace;} +.cmtt-10x-x-109{font-family: monospace;} .cmcsc-10x-x-109{} -.cmtt-10{font-size:90%;font-family: monospace,monospace;} -.cmtt-10{font-family: monospace,monospace;} -.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-size:90%;font-family: monospace;} +.cmtt-10{font-family: monospace;} +.cmtt-10{font-family: monospace;} .cmbx-10x-x-109{ font-weight: bold;} .cmbx-10x-x-109{ font-weight: bold;} .cmbx-10x-x-109{ font-weight: bold;} @@ -45,11 +44,10 @@ .cmbx-10{ font-weight: bold;} .cmti-10{font-size:90%; font-style: italic;} .small-caps{font-variant: small-caps; } -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;} +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 } @media print {div.crosslinks {visibility:hidden;}} a img { border-top: 0; border-left: 0; border-right: 0; } center { margin-top:1em; margin-bottom:1em; } @@ -72,7 +70,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;} -pre.verbatim {font-family: monospace,monospace; text-align:left; clear:both; } +div.verbatim {font-family: 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; } @@ -105,16 +103,18 @@ 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 : 0px; margin:0px; } -.hline td, .cline td{ padding: 0; } -.hline hr, .cline hr{border:none;border-top:1px solid black;} +.hline hr, .cline hr{ height : 1px; margin:0px; } .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,.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;} +.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;} table.equation {width:100%;} .equation td{text-align:center; } td.equation { margin-top:1em; margin-bottom:1em; } @@ -157,10 +157,10 @@ 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,monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; } -div.lstinputlisting{ font-family: monospace,monospace; white-space: nowrap; } +div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; } +div.lstinputlisting{ font-family: 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;} diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index 118ee3a4..dd54bbfb 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -3,21 +3,19 @@ - - + +

MLD2P4
AMG4PSBLAS
User’s and Reference Guide
A guide for the MultiLevel Domain Decomposition Parallel Preconditioners Package -based on PSBLAS
A guide for the Algebraic MultiGrid Preconditioners Package based on PSBLAS
Pasqua D’Ambra
Abstract -
Abstract
Contents
1 General Overview
2 Code Distribution
 Contributors
3 Configuring and Building AMG4PSBLAS
 3.1 Prerequisites
 3.2 Optional third party libraries
 3.3 Configuration options
 3.4 Bug reporting
 3.5 Example and test programs
4 Getting Started
 4.1 Examples
5 User Interface
 5.1 Method init
 5.2 Method set
 5.3 Method hierarchy_build
 5.4 Method smoothers_build
 5.5 Method build
 5.6 Method apply
 5.7 Method free
 5.8 Method descr
 5.9 Auxiliary Methods
6 Adding new smoother and solver objects to AMG4PSBLAS
7 Error Handling
A License +
B Contributor Covenant Code of Conduct
References -
References @@ -185,6 +181,7 @@ class="cmr-12">References
+ diff --git a/docs/html/userhtml0x.png b/docs/html/userhtml0x.png index f004430a..96c5cb9b 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 20f909a7..4c10c200 100644 Binary files a/docs/html/userhtml1x.png and b/docs/html/userhtml1x.png differ diff --git a/docs/html/userhtmlli1.html b/docs/html/userhtmlli1.html index 8f6a50a7..2549a048 100644 --- a/docs/html/userhtmlli1.html +++ b/docs/html/userhtmlli1.html @@ -3,8 +3,8 @@ Abstract - - + + @@ -24,9 +24,7 @@ class="cmr-12">]

Abstract

- -

AMG4PSBLAS (AlgPSCToolkit (Parallel Sparse Computation Toolkit) software framewo class="cmr-12">of a software development project started in 2007, named MLD2P4, which originally implemented a multilevel version of some domain decomposition preconditioners of - - - additive-Schwarz type and was based on a parallel decoupled version of the well known smoothed aggregation method to generate the multilevel hierarchy of coarser + + + matrices. In the last years, within the context of the EU-H2020 EoCoE project symmetric positive definite linear systems. Due to the significan class="cmr-12">of changes and the increase in scope, we decided to rename the package as AMG4PSBLAS. -

AMG4PSBLAS is designed to provide scalable and easy-to-use preconditioners in the context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms) @@ -120,7 +118,7 @@ class="cmr-12">to easily specify different features of an algebraic multilevel p class="cmr-12">allowing to experiment with different preconditioners for the problem and parallel computers at hand. -

The package employs object-oriented design techniques in Fortran 2003, with parallel implementation is based on a Single Program Multiple Dat class="cmr-12">paradigm; the inter-process communication is based on MPI and is managed mainly through PSBLAS. -

This guide provides a brief description of the functionalities and the user interface of AMG4PSBLAS. @@ -147,7 +145,7 @@ class="cmr-12">of AMG4PSBLAS. -

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

x x

type(in).

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

y y

type(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( 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 13fea9f5..285abe24 100644 --- a/docs/html/userhtmlsu13.html +++ b/docs/html/userhtmlsu13.html @@ -3,8 +3,8 @@ Method free - - + + @@ -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 efe3a793..4cbb802a 100644 --- a/docs/html/userhtmlsu14.html +++ b/docs/html/userhtmlsu14.html @@ -3,8 +3,8 @@ Method descr - - + + @@ -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 dcdf59d8..63e388f0 100644 --- a/docs/html/userhtmlsu15.html +++ b/docs/html/userhtmlsu15.html @@ -3,8 +3,8 @@ Auxiliary Methods - - + + @@ -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 17].

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 size is desired. Default: false.. Return memory footprint in bytes. @@ -332,9 +332,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 7d643cb0..7c3a50bd 100644 --- a/docs/html/userhtmlsu2.html +++ b/docs/html/userhtmlsu2.html @@ -3,8 +3,8 @@ Optional third party libraries - - + + diff --git a/docs/html/userhtmlsu3.html b/docs/html/userhtmlsu3.html index 2588bf71..2183b2c2 100644 --- a/docs/html/userhtmlsu3.html +++ b/docs/html/userhtmlsu3.html @@ -3,8 +3,8 @@ Configuration options - - + + @@ -44,9 +44,9 @@ class="cmr-12">As a minimal example consider the following: -

+   
./configure --with-psblas=PSB-INSTALL-DIR -
+

which assumes that the various MPI compilers and support libraries are available in  ‘--prefix=$HOME$HOME’. 
might be configured with: -

+   
./configure --with-psblas=/opt/psblas-3.5/ \ ---with-umfpackincdir=/usr/include/suitesparse/ -

--with-umfpackincdir=/usr/include/suitesparse/ +

Once the configure script has completed execution, it will have generated the file To build the library the user will now enter -

+   
make -
+

followed (optionally) by -

+   
make install -
+

diff --git a/docs/html/userhtmlsu4.html b/docs/html/userhtmlsu4.html index 3bb6153a..e5d1e06b 100644 --- a/docs/html/userhtmlsu4.html +++ b/docs/html/userhtmlsu4.html @@ -3,8 +3,8 @@ Bug reporting - - + + diff --git a/docs/html/userhtmlsu5.html b/docs/html/userhtmlsu5.html index 628e541a..0de10975 100644 --- a/docs/html/userhtmlsu5.html +++ b/docs/html/userhtmlsu5.html @@ -3,8 +3,8 @@ Example and test programs - - + + diff --git a/docs/html/userhtmlsu6.html b/docs/html/userhtmlsu6.html index 47de627a..09181ee3 100644 --- a/docs/html/userhtmlsu6.html +++ b/docs/html/userhtmlsu6.html @@ -3,8 +3,8 @@ Examples - - + + @@ -128,58 +128,59 @@ class="cmr-12">. -

+
  use psb_base_mod -  use amg_prec_mod -  use psb_krylov_mod -... ... -! -! sparse matrix -  type(psb_dspmat_type) :: A -! sparse matrix descriptor -  type(psb_desc_type)   :: desc_A -! preconditioner -  type(amg_dprec_type)  :: P -! right-hand side and solution vectors -  type(psb_d_vect_type) :: b, x -... ... -! -! initialize the parallel environment -  call psb_init(ctxt) -  call psb_info(ctxt,iam,np) -... ... -! -! read and assemble the spd matrix A and the right-hand side b -! using PSBLAS routines for sparse matrix / vector management -... ... -! -! initialize the default multilevel preconditioner, i.e. V-cycle -! 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) -! -! build the preconditioner -  call P%hierarchy_build(A,desc_A,info) -  call P%smoothers_build(A,desc_A,info) -! -! 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) -  ... ... -! -! deallocate the preconditioner -  call P%free(info) -! -! deallocate other data structures -  ... ... -! -! exit the parallel environment -  call psb_exit(ctxt) -  stop -

  use amg_prec_mod + 
  use psb_krylov_mod + 
... ... + 
! + 
! sparse matrix + 
  type(psb_dspmat_type) :: A + 
! sparse matrix descriptor + 
  type(psb_desc_type)   :: desc_A + 
! preconditioner + 
  type(amg_dprec_type)  :: P + 
! right-hand side and solution vectors + 
  type(psb_d_vect_type) :: b, x + 
... ... + 
! + 
! initialize the parallel environment + 
  call psb_init(ctxt) + 
  call psb_info(ctxt,iam,np) + 
... ... + 
! + 
! read and assemble the spd matrix A and the right-hand side b + 
! using PSBLAS routines for sparse matrix / vector management + 
... ... + 
! + 
! initialize the default multilevel preconditioner, i.e. V-cycle + 
! 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) + 
! + 
! build the preconditioner + 
  call P%hierarchy_build(A,desc_A,info) + 
  call P%smoothers_build(A,desc_A,info) + 

! + 
! 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) + 
  ... ... + 
! + 
! deallocate the preconditioner + 
  call P%free(info) + 
! + 
! deallocate other data structures + 
  ... ... + 
! + 
! exit the parallel environment + 
  call psb_exit(ctxt) + 
  stop +

@@ -284,19 +285,19 @@ class="cmr-12">.

-

-... ...
-! 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%set(’SMOOTHER_TYPE’,’BJAC’,info)
-  call P%set(’COARSE_SOLVE’,’BJAC’,info)
-  call P%set(’COARSE_SWEEPS’,8,info)
-  call P%hierarchy_build(A,desc_A,info)
-  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%set(’SMOOTHER_TYPE’,’BJAC’,info) + 
  call P%set(’COARSE_SOLVE’,’BJAC’,info) + 
  call P%set(’COARSE_SWEEPS’,8,info) + 
  call P%hierarchy_build(A,desc_A,info) + 
  call P%smoothers_build(A,desc_A,info) + 
... ... +


Listing 2: setup of a multilevel preconditioner based on the default decoup

-

-... ...
-! 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%set(’PAR_AGGR_ALG’,’COUPLED’,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’,’MUMPS’,info)
-  call P%set(’COARSE_MAT’,’DIST’,info)
-  call P%hierarchy_build(A,desc_A,info)
-  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%set(’PAR_AGGR_ALG’,’COUPLED’,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’,’MUMPS’,info) + 
  call P%set(’COARSE_MAT’,’DIST’,info) + 
  call P%hierarchy_build(A,desc_A,info) + 
  call P%smoothers_build(A,desc_A,info) + 
... ... +


Listing 3:

-

+
... ... -! set RAS with overlap 2 and ILU(0) on the local blocks -  call P%init(’AS’,info) -  call P%set(’SUB_OVR’,2,info) -  call P%bld(A,desc_A,info) -... ... -! solve Ax=b with preconditioned BiCGSTAB -  call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info) -

! set RAS with overlap 2 and ILU(0) on the local blocks + 
  call P%init(’AS’,info) + 
  call P%set(’SUB_OVR’,2,info) + 
  call P%bld(A,desc_A,info) + 
... ... + 
! solve Ax=b with preconditioned BiCGSTAB + 
  call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info) +


Listing 4: Method init - - + + @@ -54,9 +54,9 @@ cellspacing="0" cellpadding="0" >

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 e0f3dcfb..7307dfae 100644 --- a/docs/html/userhtmlsu8.html +++ b/docs/html/userhtmlsu8.html @@ -3,8 +3,8 @@ Method set - - + + @@ -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 7.

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 7).

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.






OUTER_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 @@ -722,17 +722,17 @@ multiplied by the number of processes.






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 @@ -745,17 +745,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 @@ -763,23 +763,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 @@ -807,7 +807,7 @@ class="cmmi-10x-x-109">AT .






what a type e

val val

dfault t

cts






AGGR_TYPE

character(len=*) =*)

SOC1

SOC1, MATCHBOXP

Type of aggregation algorithm: currently, for the decoupled aggregation we implement two @@ -884,19 +884,19 @@ package [8].






AGGR_SIZE

integer integer

Any integer

number power of 2 and > 2

4 > 2

4

Maximum size of aggregates when the coupled aggregation based on matching is applied. For aggressive coarsening @@ -908,7 +908,7 @@ class="cmbx-10x-x-109">MODIFICARE class="cmbx-10x-x-109">CODICE






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 coarse size threshold per process, 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.





@@ -982,7 +982,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 @@ -1040,7 +1040,7 @@ descending degrees of the nodes in the matrix graph.






AGGR_THRESHreal( kind_parameter

) )

Any real

number  [0,1]

0.01 ,1]

0.01

The threshold θ in the decoupled aggregation algorithm, see (??. 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 (see (??) in Section ??).






Note. Different thresholds at different levels, such as those used in [30, 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

RKR

See Note.’

See Note.

Solver used at the coarsest level: sequential LU from MUMPS, UMFPACK, or SuperLU (plus triangular solve); distributed LU from MUMPS or @@ -1272,7 +1272,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 coarse matrix, in case the block Jacobi solver is chosen as coarsest-level solver: ILU(






Note. Defaults for COARSE_SOLVE and COARSE_SUBSOLVE are chosen in the following order:
single precision version – MUMPS if installed, then SLU if installed, ILU otherwise;
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 Aggiungere class="cmbx-10x-x-109">criterio di arresto del PCG?






COARSE_FILLIN

integer integer

Any integer

number -0

0

0

Fill-in level p of the ILU factorizations.






COARSE_ILUTHRSreal( kind_parameter

) )

Any real

number -0

0

0

Drop tolerance t in the ILU(p,t) factorization.






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




what a type e

val val

dfault t

cnts






SMOOTHER_TYPE

character(len=*) =*)

JACOBI

AS

FBGS

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






SUB_SOLVE

character(len=*) =*)

JACOBI

UMF

GS and preconditioners 1-versions? -versions?

The local solver to be used with the or UMFPACK (plus triangular solve). See class="cmr-10">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 6:




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_ILUTHRSreal( kind_parameter

) )

Any real number 0 0

0 0

Drop tolerance t ) 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 process.

MUMPS_IPAR_ENTRY

integer integer

Any integer number number

0 0

Set an entry in the MUMPS integer control optional 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 7: Method hierarchy_build - - + + @@ -68,9 +68,9 @@ cellspacing="0" cellpadding="0" >

a a

type(in).

The sparse matrix structure containing the local part of the matrix 17].

desc_adesc_a

type(in).

The communication descriptor of a17].

info info

integer,out).

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

diff --git a/docs/src/abstract.tex b/docs/src/abstract.tex index f79f207d..167bd6be 100644 --- a/docs/src/abstract.tex +++ b/docs/src/abstract.tex @@ -1,5 +1,7 @@ \section*{Abstract} +\ifpdf \addcontentsline{toc}{section}{Abstract} +\fi \textsc{AMG4PSBLAS (Algebraic MultiGrid Preconditioners Package based on PSBLAS}) is a package of parallel algebraic multilevel preconditioners included in the PSCToolkit (Parallel Sparse Computation Toolkit) software framework. diff --git a/docs/src/bibliography.tex b/docs/src/bibliography.tex index bad19c07..f2bf8fba 100644 --- a/docs/src/bibliography.tex +++ b/docs/src/bibliography.tex @@ -1,6 +1,8 @@ %\section{Bibliography\label{sec:bib}} \begin{thebibliography}{99} +\ifpdf \addcontentsline{toc}{section}{\refname} +\fi \markboth{\textsc{MLD2P4 User's and Reference Guide}} {\textsc{References}} diff --git a/docs/src/userhtml.tex b/docs/src/userhtml.tex index 242f78db..0357730b 100644 --- a/docs/src/userhtml.tex +++ b/docs/src/userhtml.tex @@ -102,10 +102,8 @@ %\newcommand{\Ref}[1]{\mbox{(\ref{#1})}} \begin{document} -{\LARGE\bfseries MLD2P4\\[.8ex] User's and Reference Guide}\\[\baselineskip] -\emph{\large A guide for the MultiLevel Domain Decomposition -Parallel Preconditioners Package -based on PSBLAS}\\[3ex] +{\LARGE\bfseries AMG4PSBLAS\\[.8ex] User's and Reference Guide}\\[\baselineskip] +\emph{\large A guide for the Algebraic MultiGrid Preconditioners Package based on PSBLAS}\\[3ex] {\large\bfseries Pasqua D'Ambra}\\ \large IAC-CNR, Naples, Italy\\[3ex] {\large\bfseries Fabio Durastante}\\ @@ -150,6 +148,7 @@ Software version: 1.0\\ \cleardoublepage \appendix \include{license} +\include{covenant} \cleardoublepage \include{bibliography}