diff --git a/docs/amg4psblas_1.0-guide.pdf b/docs/amg4psblas_1.0-guide.pdf new file mode 100644 index 00000000..c745f571 Binary files /dev/null and b/docs/amg4psblas_1.0-guide.pdf differ diff --git a/docs/html/index.html b/docs/html/index.html index 876b4291..ffb1cef4 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -3,8 +3,8 @@
+@article{DDF2021, - author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, - title = {{{AMG Preconditioners for Linear Solvers towards Extreme Scale}}, - journal = {arXiv e-preprints}, - eprint = {2006.16147v3}, - archivePrefix = {arXiv}, - year={2021} - } -@Misc{psctoolkit-web-page, - author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, - title = {{PSCToolkit} {W}eb page}, - url = {https://psctoolkit.github.io/}, - howpublished = {\url{https://psctoolkit.github.io/}}, - year = {2021} - } - +
author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, +
title = {{{AMG Preconditioners for Linear Solvers towards Extreme Scale}}, +
journal = {arXiv e-preprints}, +
eprint = {2006.16147v3}, +
archivePrefix = {arXiv}, +
year={2021} +
} +
+
@Misc{psctoolkit-web-page, +
author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, +
title = {{PSCToolkit} {W}eb page}, +
url = {https://psctoolkit.github.io/}, +
howpublished = {\url{https://psctoolkit.github.io/}}, +
year = {2021} +
} +diff --git a/docs/html/userhtmlli5.html b/docs/html/userhtmlli5.html index d712d8cf..e7026c20 100644 --- a/docs/html/userhtmlli5.html +++ b/docs/html/userhtmlli5.html @@ -3,8 +3,8 @@
References - - + + diff --git a/docs/html/userhtmlse1.html b/docs/html/userhtmlse1.html index f0b32b47..7b3aac2e 100644 --- a/docs/html/userhtmlse1.html +++ b/docs/html/userhtmlse1.html @@ -3,8 +3,8 @@General Overview - - + + diff --git a/docs/html/userhtmlse2.html b/docs/html/userhtmlse2.html index 03862797..02fa5af2 100644 --- a/docs/html/userhtmlse2.html +++ b/docs/html/userhtmlse2.html @@ -3,8 +3,8 @@Code Distribution - - + + diff --git a/docs/html/userhtmlse3.html b/docs/html/userhtmlse3.html index 3184abfd..c806825f 100644 --- a/docs/html/userhtmlse3.html +++ b/docs/html/userhtmlse3.html @@ -3,8 +3,8 @@Configuring and Building AMG4PSBLAS - - + + diff --git a/docs/html/userhtmlse4.html b/docs/html/userhtmlse4.html index 0a78b57d..c981fd8d 100644 --- a/docs/html/userhtmlse4.html +++ b/docs/html/userhtmlse4.html @@ -3,8 +3,8 @@Getting Started - - + + @@ -243,7 +243,7 @@ class="cmcsc-10x-x-109">typee string
g der
No preconditioner No preconditioner ’NONE’
’ Considered to use the PSBLAS Krylov solvers with no preconditioner.
Diagonal Diagonal ’DIAG’L1-JACOBI’
’ Diagonal preconditioner. For any zero diagonal entry of the matrix to be preconditioned, the corresponding entry @@ -309,7 +309,7 @@ of the preconditioner is set to 1.
Gauss-Seidel Gauss-Seidel ’GS’L1-GS’
’ Hybrid Gauss-Seidel (forward), that is, global block Jacobi with Gauss-Seidel as local solver.
Symmetrized Gauss-Seidel Symmetrized Gauss-Seidel ’FBGS’L1-FBGS’
’ Symmetrized hybrid Gauss-Seidel, that is, forward Gauss-Seidel followed by backward Gauss-Seidel.
Block Jacobi Block Jacobi ’BJAC’L1-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/userhtmlse5.html b/docs/html/userhtmlse5.html index a7e1fb0e..d4546966 100644 --- a/docs/html/userhtmlse5.html +++ b/docs/html/userhtmlse5.html @@ -3,8 +3,8 @@
User Interface - - + + diff --git a/docs/html/userhtmlse6.html b/docs/html/userhtmlse6.html index 01eb6d6c..947c0d37 100644 --- a/docs/html/userhtmlse6.html +++ b/docs/html/userhtmlse6.html @@ -3,8 +3,8 @@Adding new smoother and solver objects to AMG4PSBLAS - - + + @@ -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.
pass it as follows: -
- ! sparse matrix and preconditioner - type(psb_dspmat_type) :: a - type(amg_dprec_type) :: prec - type(amg_d_tlu_solver_type) :: tlusv -...... - ! - ! prepare the preconditioner: an ML with defaults, but with TLU solver at - ! intermediate levels. All other parameters are at default values. - ! - call prec%init(’ML’, info) - call prec%hierarchy_build(a,desc_a,info) - nlv = prec%get_nlevs() - call prec%set(tlusv, info,ilev=1,ilmax=max(1,nlv-1)) - call prec%smoothers_build(a,desc_a,info) -++
! sparse matrix and preconditioner +
type(psb_dspmat_type) :: a +
type(amg_dprec_type) :: prec +
type(amg_d_tlu_solver_type) :: tlusv +
+
...... +
! +
! prepare the preconditioner: an ML with defaults, but with TLU solver at +
! intermediate levels. All other parameters are at default values. +
! +
call prec%init(’ML’, info) +
call prec%hierarchy_build(a,desc_a,info) +
nlv = prec%get_nlevs() +
call prec%set(tlusv, info,ilev=1,ilmax=max(1,nlv-1)) +
call prec%smoothers_build(a,desc_a,info) +
+diff --git a/docs/html/userhtmlse7.html b/docs/html/userhtmlse7.html index df4dc649..8c41cbde 100644 --- a/docs/html/userhtmlse7.html +++ b/docs/html/userhtmlse7.html @@ -3,8 +3,8 @@
Error Handling - - + + diff --git a/docs/html/userhtmlse8.html b/docs/html/userhtmlse8.html index 76b8561f..822aeec9 100644 --- a/docs/html/userhtmlse8.html +++ b/docs/html/userhtmlse8.html @@ -3,8 +3,8 @@License - - + + @@ -36,37 +36,42 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright -- AMG4PSBLAS version 1.0 - Algebraic MultiGrid Preconditioners Package - based on PSBLAS (Parallel Sparse BLAS version 3.7) - (C) Copyright 2021 - Pasqua D’Ambra IAC-CNR, IT - Fabio Durastante University of Pisa and IAC-CNR, IT - Salvatore Filippone University of Rome Tor-Vergata and IAC-CNR, IT - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions, and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the MLD2P4 group or the names of its contributors may - not be used to endorse or promote products derived from this - software without specific written permission. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS - BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -++
AMG4PSBLAS version 1.0 +
Algebraic MultiGrid Preconditioners Package +
based on PSBLAS (Parallel Sparse BLAS version 3.7) +
+
(C) Copyright 2021 +
+
Pasqua D’Ambra IAC-CNR, IT +
Fabio Durastante University of Pisa and IAC-CNR, IT +
Salvatore Filippone University of Rome Tor-Vergata and IAC-CNR, IT +
+
Redistribution and use in source and binary forms, with or without +
modification, are permitted provided that the following conditions +
are met: +
1. Redistributions of source code must retain the above copyright +
notice, this list of conditions and the following disclaimer. +
2. Redistributions in binary form must reproduce the above copyright +
notice, this list of conditions, and the following disclaimer in the +
documentation and/or other materials provided with the distribution. +
3. The name of the MLD2P4 group or the names of its contributors may +
not be used to endorse or promote products derived from this +
software without specific written permission. +
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +
‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS +
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +
POSSIBILITY OF SUCH DAMAGE. +
+@@ -78,37 +83,44 @@ class="cmr-12">abide by its terms: -
- MLD2P4 version 2.2 - MultiLevel Domain Decomposition Parallel Preconditioners Package - based on PSBLAS (Parallel Sparse BLAS version 3.5) - (C) Copyright 2008-2018 - Salvatore Filippone - Pasqua D’Ambra - Daniela di Serafino - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions, and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. The name of the MLD2P4 group or the names of its contributors may - not be used to endorse or promote products derived from this - software without specific written permission. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS - BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -++
+
MLD2P4 version 2.2 +
MultiLevel Domain Decomposition Parallel Preconditioners Package +
based on PSBLAS (Parallel Sparse BLAS version 3.5) +
+
(C) Copyright 2008-2018 +
+
Salvatore Filippone +
Pasqua D’Ambra +
Daniela di Serafino +
+
+
Redistribution and use in source and binary forms, with or without +
modification, are permitted provided that the following conditions +
are met: +
1. Redistributions of source code must retain the above copyright +
notice, this list of conditions and the following disclaimer. +
2. Redistributions in binary form must reproduce the above copyright +
notice, this list of conditions, and the following disclaimer in the +
documentation and/or other materials provided with the distribution. +
3. The name of the MLD2P4 group or the names of its contributors may +
not be used to endorse or promote products derived from this +
software without specific written permission. +
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +
‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS +
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +
POSSIBILITY OF SUCH DAMAGE. +
+AMG4PSBLAS is distributed together with (a small part of) the graph-matching @@ -127,48 +139,48 @@ class="cmr-12">here. -
+// *********************************************************************** -// -// MatchboxP: A C++ library for approximate weighted matching -// Mahantesh Halappanavar (hala@pnnl.gov) -// Pacific Northwest National Laboratory -// -// *********************************************************************** -// -// Copyright (2021) Battelle Memorial Institute -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -// ************************************************************************ - +
// +
// MatchboxP: A C++ library for approximate weighted matching +
// Mahantesh Halappanavar (hala@pnnl.gov) +
// Pacific Northwest National Laboratory +
// +
// *********************************************************************** +
// +
// Copyright (2021) Battelle Memorial Institute +
// All rights reserved. +
// +
// Redistribution and use in source and binary forms, with or without +
// modification, are permitted provided that the following conditions +
// are met: +
// +
// 1. Redistributions of source code must retain the above copyright +
// notice, this list of conditions and the following disclaimer. +
// +
// 2. Redistributions in binary form must reproduce the above copyright +
// notice, this list of conditions and the following disclaimer in the +
// documentation and/or other materials provided with the distribution. +
// +
// 3. Neither the name of the copyright holder nor the names of its +
// contributors may be used to endorse or promote products derived from +
// this software without specific prior written permission. +
// +
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +
// COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +
// POSSIBILITY OF SUCH DAMAGE. +
// +
// ************************************************************************ +diff --git a/docs/html/userhtmlse9.html b/docs/html/userhtmlse9.html index 3db740b8..1f30b61b 100644 --- a/docs/html/userhtmlse9.html +++ b/docs/html/userhtmlse9.html @@ -3,8 +3,8 @@
Contributor Covenant Code of Conduct - - + + diff --git a/docs/html/userhtmlsu1.html b/docs/html/userhtmlsu1.html index 8022ba00..4db589e8 100644 --- a/docs/html/userhtmlsu1.html +++ b/docs/html/userhtmlsu1.html @@ -3,8 +3,8 @@Prerequisites - - + + diff --git a/docs/html/userhtmlsu10.html b/docs/html/userhtmlsu10.html index 00a465ed..86ef89f6 100644 --- a/docs/html/userhtmlsu10.html +++ b/docs/html/userhtmlsu10.html @@ -3,8 +3,8 @@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 20].
desc_a
desc_a type(in).
The communication descriptor of a20].
info
info integer,out).
Error code. If no error, 0 is returned. See Section 7 for details.
diff --git a/docs/html/userhtmlsu11.html b/docs/html/userhtmlsu11.html index 08501195..67cc3b6e 100644 --- a/docs/html/userhtmlsu11.html +++ b/docs/html/userhtmlsu11.html @@ -3,8 +3,8 @@ Method smoothers_build - - + + @@ -82,9 +82,9 @@ cellspacing="0" cellpadding="0" >a
a type(in).
The sparse matrix structure containing the local part of the matrix 20].
desc_a
desc_a type(in).
The communication descriptor of a20].
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 20].
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/userhtmlsu12.html b/docs/html/userhtmlsu12.html index 32e905c0..a29d4019 100644 --- a/docs/html/userhtmlsu12.html +++ b/docs/html/userhtmlsu12.html @@ -3,8 +3,8 @@ Method build - - + + @@ -90,9 +90,9 @@ cellspacing="0" cellpadding="0" >a
a type(in).
The sparse matrix structure containing the local part of the matrix 20].
desc_a
desc_a type(in).
The communication descriptor of a20].
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 20].
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/userhtmlsu13.html b/docs/html/userhtmlsu13.html index 6f194dd5..0a54ef74 100644 --- a/docs/html/userhtmlsu13.html +++ b/docs/html/userhtmlsu13.html @@ -3,8 +3,8 @@
Method apply - - + + @@ -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_a
desc_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/userhtmlsu14.html b/docs/html/userhtmlsu14.html index 9dab129c..bb0aa353 100644 --- a/docs/html/userhtmlsu14.html +++ b/docs/html/userhtmlsu14.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/userhtmlsu15.html b/docs/html/userhtmlsu15.html index 8c3cfa76..12056e79 100644 --- a/docs/html/userhtmlsu15.html +++ b/docs/html/userhtmlsu15.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 class="cmtt-12">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/userhtmlsu16.html b/docs/html/userhtmlsu16.html index 6b6ab93f..6f922637 100644 --- a/docs/html/userhtmlsu16.html +++ b/docs/html/userhtmlsu16.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 20].
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.
read. @@ -131,58 +133,59 @@ class="cmr-12">. -
global
global logical, optional.
Whether the global or local preconditioner memory occupation 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.
read of the AMG4PSBLAS implementation (see Section for details). If these versions are installed, the corresponding codes are available in samples/simple/fileread/samples/simple/file
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 bccb1ca7..082299c8 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 98612f6f..efa45195 100644 --- a/docs/html/userhtmlsu3.html +++ b/docs/html/userhtmlsu3.html @@ -3,8 +3,8 @@Configuration options - - + + @@ -42,9 +42,9 @@ class="cmr-12">As a minimal example consider the following: -+, in the directory samples/simple/fileread samples/simple/file./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.7/ \ ---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 -
+amg_dexample_ml.f90make - +followed (optionally) by -
+make install - +diff --git a/docs/html/userhtmlsu4.html b/docs/html/userhtmlsu4.html index 8146ab12..d9e5c8c6 100644 --- a/docs/html/userhtmlsu4.html +++ b/docs/html/userhtmlsu4.html @@ -3,8 +3,8 @@
Bug reporting - - + + @@ -36,8 +36,8 @@ class="cmr-12">If you find any bugs in our codes, please report them through our on
https://github.com/psctoolkit/amg4psblas/issues
https://github.com/psctoolkit/psctoolkit/issues
To enable us to track the bug, please provide a log from the failing application, the diff --git a/docs/html/userhtmlsu5.html b/docs/html/userhtmlsu5.html index 2451872d..6033e14c 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 71c829cd..0fa4d4a6 100644 --- a/docs/html/userhtmlsu6.html +++ b/docs/html/userhtmlsu6.html @@ -3,8 +3,8 @@Examples - - + + @@ -79,7 +79,8 @@ class="cmr-12">found in the example program file+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 +@@ -291,19 +294,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(’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%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(’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%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:GPU example - - + + @@ -52,23 +52,24 @@ class="cmr-12">variables:+class="cmr-12">objects. +-
+program amg_dexample_gpu - use psb_base_mod - use amg_prec_mod - use psb_krylov_mod - use psb_util_mod - use psb_gpu_mod - use data_input - use amg_d_pde_mod - implicit none - ....... - ! GPU variables - type(psb_d_hlg_sparse_mat) :: agmold - type(psb_d_vect_gpu) :: vgmold - type(psb_i_vect_gpu) :: igmold - - +
use psb_base_mod +
use amg_prec_mod +
use psb_krylov_mod +
use psb_util_mod +
use psb_gpu_mod +
use data_input +
use amg_d_pde_mod +
implicit none +
....... +
! GPU variables +
type(psb_d_hlg_sparse_mat) :: agmold +
type(psb_d_vect_gpu) :: vgmold +
type(psb_i_vect_gpu) :: igmold +
+
+
Listing 5: guides).diff --git a/docs/html/userhtmlsu9.html b/docs/html/userhtmlsu9.html index c276983a..888ff957 100644 --- a/docs/html/userhtmlsu9.html +++ b/docs/html/userhtmlsu9.html @@ -3,8 +3,8 @@-
+call psb_init(ctxt) - call psb_info(ctxt,iam,np) - ! - ! BEWARE: if you have NGPUS per node, the default is to - ! attach to mod(IAM,NGPUS) - ! - call psb_gpu_init(ictxt) - ...... - t1 = psb_wtime() - call prec%smoothers_build(a,desc_a,info, amold=agmold, vmold=vgmold, imold=igmold) - - +
call psb_info(ctxt,iam,np) +
! +
! BEWARE: if you have NGPUS per node, the default is to +
! attach to mod(IAM,NGPUS) +
! +
call psb_gpu_init(ictxt) +
...... +
t1 = psb_wtime() +
call prec%smoothers_build(a,desc_a,info, amold=agmold, vmold=vgmold, imold=igmold) +
+
+
Listing 6: GPU environment--
+++
+call desc_a%cnv(mold=igmold) - call a%cscnv(info,mold=agmold) - call psb_geasb(x,desc_a,info,mold=vgmold) - call psb_geasb(b,desc_a,info,mold=vgmold) - ! - ! iterative method parameters - ! - call psb_barrier(ctxt) - call prec%allocate_wrk(info) - t1 = psb_wtime() - call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,& - & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& - & istop=s_choice%istopc,irst=s_choice%irst) - call prec%deallocate_wrk(info) - call psb_barrier(ctxt) - tslv = psb_wtime() - t1 - ...... - call psb_gpu_exit() - call psb_exit(ctxt) - stop - - -
call a%cscnv(info,mold=agmold) +
call psb_geasb(x,desc_a,info,mold=vgmold) +
call psb_geasb(b,desc_a,info,mold=vgmold) +
+
! +
! iterative method parameters +
! +
call psb_barrier(ctxt) +
call prec%allocate_wrk(info) +
t1 = psb_wtime() +
call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,& +
& desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,& +
& istop=s_choice%istopc,irst=s_choice%irst) +
call prec%deallocate_wrk(info) +
call psb_barrier(ctxt) +
tslv = psb_wtime() - t1 +
+
...... +
call psb_gpu_exit() +
call psb_exit(ctxt) +
stop +
+
+
Listing 7: setup of a GPU-enabled test program part three.@@ -175,25 +180,30 @@ class="content">setup of a GPU-enabled test program part three.It is very important to employ solvers that are suited to the GPU, i.e. solvers that +
It is very important to employ smoothers and coarsest solvers that are suited to the do NOT employ triangular system solve kernels. Solvers that satisfy this constraint +class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kernels. Methods that include: +class="cmr-12">satisfy this constraint include:
+
- JACOBI
- BJAC with the following methods on the local blocks: +
+
-- INVK -
-- +
- INVT -
-- +
- AINV
and their ℓ1
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.
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 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 objects.
A variety of preconditioners can be obtained by setting the appropriate @@ -563,7 +563,7 @@ id="TBL-4-3">
what
a type e val
val dfault
t cnts
’ML_CYCLE
(len=*)
character=*) ’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 @@ -736,17 +736,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 @@ -759,17 +759,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 @@ -777,23 +777,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
(len=*)
character=*) ’DEC’, ’SYMDEC’, ’COUPLED’
’COUPLED’ ’DEC’
’DEC’ Parallel aggregation algorithm.
the SYMDEC option applies decoupled @@ -821,7 +821,7 @@ class="cmmi-10x-x-109">AT .
’AGGR_TYPE
(len=*)
character=*) ’SOC1’, ’MATCHBOXP’
’ ’SOC1’
’ Type of aggregation algorithm: currently, for the decoupled aggregation we implement two @@ -862,13 +862,13 @@ package [9].
’AGGR_SIZE’
integer
integer Any integer
power of 2, with @@ -876,8 +876,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 @@ -889,7 +889,7 @@ and ’MATCHBOXP’
’AGGR_PROL
(len=*)
character=*) ’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.@@ -964,7 +964,7 @@ id="TBL-6-3"> what
a type e val
val dfault
t cnts
’AGGR_ORD
(len=*)
character=*) ’NATURAL’
’DEGREE’
’DEGREE’ ’NATURAL’
’NATURAL’ Initial ordering of indices for the decoupled aggregation algorithm: either natural ordering or sorted by @@ -1022,7 +1022,7 @@ descending degrees of the nodes in the matrix graph.
’AGGR_THRESH
(kind_parameter)
real) 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
(len=*)
character=*) ’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 [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
(len=*)
character=*) ’DIST’
’REPL’
’ ’REPL’
’ Coarsest matrix layout: distributed among the processes or replicated on each of them.
’COARSE_SOLVE
(len=*)
character=*) ’MUMPS’L1-FBGS’
See Note.
’ See Note.
Solver used at the coarsest level: sequential LU from MUMPS, UMFPACK, or SuperLU (plus triangular solve); distributed LU from @@ -1261,7 +1261,7 @@ UMFPACK and SuperLU_Dist are available only in double precision.
’COARSE_SUBSOLVE
(len=*)
character=*) ’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(
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 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
(kind_parameter)
real) 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.@@ -1499,7 +1499,7 @@ id="TBL-8-3"> what
a type e val
val dfault
t cnts
’BJAC_STOP
(len=*)
character=*) ’FALSE’
’TRUE’
’ ’FALSE’
’ Select whether to use a stopping criterion for the Block-Jacobi method used as a coarse solver.
’BJAC_TRACE
(len=*)
character=*) ’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
(kind_parameter)
real) Any real
< 1
0
< 1 0
Tolerance for the stopping criterion on the residual.
’KRM_METHOD
(len=*)
character=*) ’CG’
’RGMRES’
’ ’FCG’
’ A string that defines the iterative method to be used when employing a Krylov method 20] for further information.
’KRM_KPREC
(len=*)
character=*) Table 1
1 ’BJAC’
’ The one-level preconditioners from the Table 1 can be used for the coarse Krylov solver.
’KRM_SUB_SOLVE
(len=*)
character=*) Table 5
5 ’ILU’
’ Solver for the diagonal blocks of the coarsest matrix preconditioner, in case the block Jacobi solver is chosen @@ -1777,7 +1777,7 @@ The same caveat from Table 5 applies here.
’KRM_GLOBAL
(len=*)
character=*) ’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
(kind_parameter)
real) 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 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 @@ -1899,23 +1899,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.
@@ -1950,7 +1950,7 @@ id="TBL-9-3"> what
a type e val
val dfault
t cnts
’SMOOTHER_TYPE
(len=*)
character=*) ’JACOBI’L1-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
(len=*)
character=*) ’JACOBI’
’AINV’
’ GS and and Additive Schwarz one-level preconditioners
preconditioners The local solver to be used with the . See class="cmr-10">Note for details on hybrid Gauss-Seidel.
’SMOOTHER_SWEEPS’
integer
integer Any integer
number ≥ 0
0 1
1 Number of sweeps of the smoother or , class="cmr-10">respectively.
’SUB_OVR’
integer
integer Any integer
number ≥ 0
0 1
1 Number of overlap layers, for Additive Schwarz only.
Table 7:what
a type e val
val dfault
t cnts
’SUB_RESTR
(len=*)
character=*) ’HALO’
’NONE’
’ ’HALO’
’ Type of restriction operator, for Additive classical Addditive Schwarz smoother and class="cmr-10">its RAS variant.
’SUB_PROL
(len=*)
character=*) ’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
(kind_parameter)
real) Any real number ≥ 0
0 0
0 Drop tolerance t ) class="cmr-10">factorization.
’MUMPS_LOC_GLOB
(len=*)
character=*) ’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: