mld2p4-2:

docs/html/node24.html
 docs/html/node28.html
 docs/mld2p4-2.1-guide.pdf
 docs/src/userinterface.tex

Fixes for extending smoothers and solvers.
This commit is contained in:
Salvatore Filippone
2017-05-16 13:11:01 +00:00
parent 84288ff74d
commit 435babf6f1
4 changed files with 47 additions and 30 deletions
+20 -10
View File
@@ -59,16 +59,20 @@ Adding new smoothers and solvers to MLD2P4
<P>
Developers can add completely new smoother and/or solver classes
derived from the base objects in the library may be used without
recompiling the library itself. To do so it is necessary first to
select the base type to be extended; in our experience, it is quite
likely that the new application needs only require the definition of a
``solver'' object, which is almost always acting only on the local
part of the distributed matrix. The parallel actions required to
connect the various solver objects are most often already provided by
the Block Jacobi or the Additive Schwarz smoothers.
To define a new solver, the developer will then have to define its
components and methods, perhaps taking one of the predefined solvers
as a starting point if possible.
recompiling the library itself.
<P>
To do so it is necessary first to select the base type to be extended;
in our experience, it is quite likely that the new application needs
only require the definition of a ``solver'' object, which is almost
always acting only on the local part of the distributed matrix.
<P>
The parallel actions required to connect the various solver objects
are most often already provided by the Block Jacobi or the Additive
Schwarz smoothers. To define a new solver, the developer will then
have to define its components and methods, perhaps taking one of the
predefined solvers as a starting point if possible.
<P>
Once the new smoother/solver class has been developed, to use it in
@@ -101,6 +105,12 @@ it passes it down the composition hierarchy (levels containing
smoothers containing solvers), so that it can be eventually caught by
the new solver.
<P>
An example is contained in the source code distribution under the
folder <code>tests/newslv</code>. This example solver is simply the ILU(0)
solver under a new name, but it should give an idea of what needs to
be done.
<P>
<BR>