mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
mld2p4:
html/index.html html/node1.html html/node10.html html/node11.html html/node12.html html/node13.html html/node14.html html/node15.html html/node16.html html/node17.html html/node18.html html/node19.html html/node2.html html/node20.html html/node21.html html/node22.html html/node23.html html/node24.html html/node25.html html/node26.html html/node3.html html/node4.html html/node5.html html/node6.html html/node7.html html/node8.html html/node9.html html/userhtml.html src/Makefile src/building.tex src/userguide.tex src/userhtml.tex userguide.pdf Fixed mail hyperlink.
This commit is contained in:
+175
-256
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Examples</TITLE>
|
||||
<META NAME="description" CONTENT="Examples">
|
||||
<TITLE>Getting Started</TITLE>
|
||||
<META NAME="description" CONTENT="Getting Started">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -18,309 +18,228 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="previous" HREF="node13.html">
|
||||
<LINK REL="up" HREF="node13.html">
|
||||
<LINK REL="next" HREF="node16.html">
|
||||
<LINK REL="previous" HREF="node11.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node15.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html227"
|
||||
<A NAME="tex2html231"
|
||||
HREF="node15.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<A NAME="tex2html223"
|
||||
HREF="node13.html">
|
||||
<A NAME="tex2html227"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html219"
|
||||
<A NAME="tex2html221"
|
||||
HREF="node13.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<A NAME="tex2html225"
|
||||
<A NAME="tex2html229"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
||||
SRC="file:/usr/share/latex2html/icons/contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html228"
|
||||
HREF="node15.html">User Interface</A>
|
||||
<B> Up:</B> <A NAME="tex2html224"
|
||||
HREF="node13.html">Getting Started</A>
|
||||
<B> Previous:</B> <A NAME="tex2html220"
|
||||
HREF="node13.html">Getting Started</A>
|
||||
<B> <A NAME="tex2html226"
|
||||
<B> Next:</B> <A NAME="tex2html232"
|
||||
HREF="node15.html">Examples</A>
|
||||
<B> Up:</B> <A NAME="tex2html228"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html222"
|
||||
HREF="node13.html">Smoothed Aggregation</A>
|
||||
<B> <A NAME="tex2html230"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00071000000000000000"></A><A NAME="sec:examples"></A>
|
||||
<H1><A NAME="SECTION00070000000000000000"></A><A NAME="sec:started"></A>
|
||||
<BR>
|
||||
Examples
|
||||
</H2>
|
||||
Getting Started
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
The code reported in Figure <A HREF="#fig:ex_default">2</A> shows how to set and apply the default
|
||||
multi-level preconditioner available in the real double precision version
|
||||
of MLD2P4 (see Table <A HREF="#tab:precinit">1</A>). This preconditioner is chosen
|
||||
by simply specifying <code>'ML'</code> as second argument of <code>mld_precinit</code>
|
||||
(a call to <code>mld_precset</code> is not needed) and is applied with the BiCGSTAB
|
||||
solver provided by PSBLAS. As previously observed, the modules <code>psb_base_mod</code>,
|
||||
<code>mld_prec_mod</code> and <code>psb_krylov_mod</code> must be used by the example program.
|
||||
We describe the basics for building and applying MLD2P4 one-level and multi-level
|
||||
Schwarz preconditioners with the Krylov solvers included in PSBLAS [<A
|
||||
HREF="node25.html#PSBLASGUIDE">14</A>].
|
||||
The following steps are required:
|
||||
|
||||
<OL>
|
||||
<LI><I>Declare the preconditioner data structure</I>. It is a derived data type,
|
||||
<code>mld_</code><I>x</I><code>prec_</code> <code>type</code>, where <I>x</I> may be <code>s</code>, <code>d</code>, <code>c</code>
|
||||
or <code>z</code>, according to the basic data type of the sparse matrix
|
||||
(<code>s</code> = real single precision; <code>d</code> = real double precision;
|
||||
<code>c</code> = complex single precision; <code>z</code> = complex double precision).
|
||||
This data structure is accessed by the user only through the MLD2P4 routines,
|
||||
following an object-oriented approach.
|
||||
</LI>
|
||||
<LI><I>Allocate and initialize the preconditioner data structure, according to
|
||||
a preconditioner type chosen by the user</I>. This is performed by the routine
|
||||
<code>mld_precinit</code>, which also sets defaults for each preconditioner
|
||||
type selected by the user. The defaults associated to each preconditioner
|
||||
type are given in Table <A HREF="#tab:precinit">1</A>, where the strings used by
|
||||
<code>mld_precinit</code> to identify the preconditioner types are also given.
|
||||
Note that these strings are valid also if uppercase letters are substituted by
|
||||
corresponding lowercase ones.
|
||||
</LI>
|
||||
<LI><I>Modify the selected preconditioner type, by properly setting
|
||||
preconditioner parameters.</I> This is performed by the routine <code>mld_precset</code>.
|
||||
This routine must be called only if the user wants to modify the default values
|
||||
of the parameters associated to the selected preconditioner type, to obtain a variant
|
||||
of the preconditioner. Examples of use of <code>mld_precset</code> are given in
|
||||
Section <A HREF="node15.html#sec:examples">5.1</A>; a complete list of all the
|
||||
preconditioner parameters and their allowed and default values is provided in
|
||||
Section <A HREF="node16.html#sec:userinterface">6</A>, Tables <A HREF="#tab:p_type">2</A>-<A HREF="#tab:p_coarse">5</A>.
|
||||
</LI>
|
||||
<LI><I>Build the preconditioner for a given matrix.</I> This is performed by
|
||||
the routine <code>mld_precbld</code>.
|
||||
</LI>
|
||||
<LI><I>Apply the preconditioner at each iteration of a Krylov solver.</I>
|
||||
This is performed by the routine <code>mld_precaply</code>. When using the PSBLAS Krylov solvers,
|
||||
this step is completely transparent to the user, since <code>mld_precaply</code> is called
|
||||
by the PSBLAS routine implementing the Krylov solver (<code>psb_krylov</code>).
|
||||
</LI>
|
||||
<LI><I>Free the preconditioner data structure</I>. This is performed by
|
||||
the routine <code>mld_</code> <code>precfree</code>. This step is complementary to step 1 and should
|
||||
be performed when the preconditioner is no more used.
|
||||
</LI>
|
||||
</OL>
|
||||
A detailed description of the above routines is given in Section <A HREF="node16.html#sec:userinterface">6</A>.
|
||||
Examples showing the basic use of MLD2P4 are reported in Section <A HREF="node15.html#sec:examples">5.1</A>.
|
||||
|
||||
<P>
|
||||
The part of the code concerning the
|
||||
reading and assembling of the sparse matrix and the right-hand side vector, performed
|
||||
through the PSBLAS routines for sparse matrix and vector management, is not reported
|
||||
here for brevity; the statements concerning the deallocation of the PSBLAS
|
||||
data structure are neglected too.
|
||||
The complete code can be found in the example program file <code>mld_dexample_ml.f90</code>,
|
||||
in the directory <code>examples/fileread</code> of the MLD2P4 tree (see
|
||||
Section <A HREF="node9.html#sec:ex_and_test">3.4</A>).
|
||||
For details on the use of the PSBLAS routines, see the PSBLAS User's
|
||||
Guide [<A
|
||||
HREF="node24.html#PSBLASGUIDE">14</A>].
|
||||
|
||||
<P>
|
||||
The setup and application of the default multi-level
|
||||
preconditioners for the real single precision and the complex, single and double
|
||||
precision, versions are obtained with straightforward modifications of the previous
|
||||
example (see Section <A HREF="node15.html#sec:userinterface">6</A> for details). If these versions are installed,
|
||||
the corresponding Fortran 95 codes are available in <code>examples/fileread/</code>.
|
||||
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:ex_default"></A><A NAME="926"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG>
|
||||
Setup and application of the default multi-level Schwarz preconditioner.
|
||||
</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV><TABLE WIDTH="90%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
use psb_base_mod
|
||||
use mld_prec_mod
|
||||
use psb_krylov_mod
|
||||
... ...
|
||||
!
|
||||
! sparse matrix
|
||||
type(psb_dspmat_type) :: A
|
||||
! sparse matrix descriptor
|
||||
type(psb_desc_type) :: desc_A
|
||||
! preconditioner
|
||||
type(mld_dprec_type) :: P
|
||||
! right-hand side and solution vectors
|
||||
real(kind(1.d0)) :: b(:), x(:)
|
||||
... ...
|
||||
!
|
||||
! initialize the parallel environment
|
||||
call psb_init(ictxt)
|
||||
call psb_info(ictxt,iam,np)
|
||||
... ...
|
||||
!
|
||||
! read and assemble the matrix A and the right-hand side b
|
||||
! using PSBLAS routines for sparse matrix / vector management
|
||||
... ...
|
||||
!
|
||||
! initialize the default multi-level preconditioner, i.e. hybrid
|
||||
! Schwarz, using RAS (with overlap 1 and ILU(0) on the blocks)
|
||||
! as post-smoother and 4 block-Jacobi sweeps (with UMFPACK LU
|
||||
! on the blocks) as distributed coarse-level solver
|
||||
call mld_precinit(P,'ML',info)
|
||||
!
|
||||
! build the preconditioner
|
||||
call mld_precbld(A,desc_A,P,info)
|
||||
!
|
||||
! set the solver parameters and the initial guess
|
||||
... ...
|
||||
!
|
||||
! solve Ax=b with preconditioned BiCGSTAB
|
||||
call psb_krylov('BICGSTAB',A,P,b,x,tol,desc_A,info)
|
||||
... ...
|
||||
!
|
||||
! deallocate the preconditioner
|
||||
call mld_precfree(P,info)
|
||||
!
|
||||
! deallocate other data structures
|
||||
... ...
|
||||
!
|
||||
! exit the parallel environment
|
||||
call psb_exit(ictxt)
|
||||
stop
|
||||
</PRE>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER">
|
||||
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
Different versions of multi-level preconditioners can be obtained by changing
|
||||
the default values of the preconditioner parameters. The code reported in
|
||||
Figure <A HREF="#fig:ex_3lh">3</A> shows how to set a three-level hybrid Schwarz
|
||||
preconditioner, which uses block Jacobi with ILU(0) on the
|
||||
local blocks as post-smoother, has a coarsest matrix replicated on the processors,
|
||||
and solves the coarsest-level system with the LU factorization from UMFPACK [<A
|
||||
HREF="node24.html#UMFPACK">8</A>].
|
||||
The number of levels is specified by using <code>mld_precinit</code>; the other
|
||||
preconditioner parameters are set by calling <code>mld_precset</code>. Note that
|
||||
the type of multilevel framework (i.e. multiplicative among the levels
|
||||
with post-smoothing only) is not specified since it is the default
|
||||
set by <code>mld_precinit</code>.
|
||||
|
||||
<P>
|
||||
Figure <A HREF="#fig:ex_3la">4</A> shows how to
|
||||
set a three-level additive Schwarz preconditioner,
|
||||
which uses RAS, with overlap 1 and ILU(0) on the blocks,
|
||||
as pre- and post-smoother, and applies five block-Jacobi sweeps, with
|
||||
the UMFPACK LU factorization on the blocks, as distributed coarsest-level
|
||||
solver. Again, <code>mld_precset</code> is used only to set
|
||||
non-default values of the parameters (see Tables <A HREF="#tab:p_type">2</A>-<A HREF="#tab:p_coarse">5</A>).
|
||||
In both cases, the construction and the application of the preconditioner
|
||||
are carried out as for the default multi-level preconditioner.
|
||||
The code fragments shown in in Figures <A HREF="#fig:ex_3lh">3</A>-<A HREF="#fig:ex_3la">4</A> are
|
||||
included in the example program file <code>mld_dexample_ml.f90</code> too.
|
||||
|
||||
<P>
|
||||
Finally, Figure <A HREF="#fig:ex_1l">5</A> shows the setup of a one-level
|
||||
additive Schwarz preconditioner, i.e. RAS with overlap 2. The corresponding
|
||||
example program is available in <code>mld_dexample_</code> <code>1lev.f90</code>.
|
||||
|
||||
<P>
|
||||
For all the previous preconditioners, example programs where the sparse matrix and
|
||||
the right-hand side are generated by discretizing a PDE with Dirichlet
|
||||
boundary conditions are also available in the directory <code>examples/pdegen</code>.
|
||||
Note that the Fortran 95 module <code>mld_prec_mod</code>, containing the definition of the
|
||||
preconditioner data type and the interfaces to the routines of MLD2P4,
|
||||
must be used in any program calling such routines.
|
||||
The modules <code>psb_base_mod</code>, for the sparse matrix and communication descriptor
|
||||
data types, and <code>psb_krylov_mod</code>, for interfacing with the
|
||||
Krylov solvers, must be also used (see Section <A HREF="node15.html#sec:examples">5.1</A>).
|
||||
|
||||
<P>
|
||||
|
||||
<BR><B>Remark 3.</B> Any PSBLAS-based program using the basic preconditioners
|
||||
implemented in PSBLAS 2.0, i.e. the diagonal and block-Jacobi ones,
|
||||
can use the diagonal and block-Jacobi preconditioners
|
||||
implemented in MLD2P4 without any change in the code.
|
||||
The PSBLAS-based program must be only recompiled
|
||||
and linked to the MLD2P4 library.
|
||||
<BR><B>Remark 1.</B> The coarsest-level solver used by the default two-level
|
||||
preconditioner has been chosen by taking into account that, on parallel
|
||||
machines, it often leads to the smallest execution time when applied to
|
||||
linear systems coming from finite-difference discretizations of basic
|
||||
elliptic PDE problems, considered as standard tests for multi-level Schwarz
|
||||
preconditioners [<A
|
||||
HREF="node25.html#aaecc_07">3</A>,<A
|
||||
HREF="node25.html#apnum_07">4</A>]. However, this solver does
|
||||
not necessarily correspond to the smallest number of iterations of the
|
||||
preconditioned Krylov method, which is usually obtained by applying
|
||||
a direct solver to the coarsest-level system, e.g. based on the LU
|
||||
factorization (see Section <A HREF="node16.html#sec:userinterface">6</A>
|
||||
for the coarsest-level solvers available in MLD2P4).
|
||||
|
||||
<P>
|
||||
|
||||
<BR><B>Remark 2.</B> The include path for MLD2P4 must override
|
||||
those for PSBLAS, e.g. the latter must come first in the sequence
|
||||
passed to the compiler, as the MLD2P4 version of the Krylov solver
|
||||
interfaces must override that of PSBLAS. This will change in the future
|
||||
when the support for the <code>class</code> statement becomes widespread in Fortran
|
||||
compilers.
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="923"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 1:</STRONG>
|
||||
Preconditioner types, corresponding strings and default choices.
|
||||
</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><SMALL>TYPE</SMALL></TD>
|
||||
<TD ALIGN="LEFT"><SMALL>STRING</SMALL></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=221><SMALL>DEFAULT PRECONDITIONER</SMALL></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">No preconditioner</TD>
|
||||
<TD ALIGN="LEFT"><code>'NOPREC'</code></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=221>Considered only to use the PSBLAS
|
||||
Krylov solvers with no preconditioner.</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Diagonal</TD>
|
||||
<TD ALIGN="LEFT"><code>'DIAG'</code></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=221>--</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Block Jacobi</TD>
|
||||
<TD ALIGN="LEFT"><code>'BJAC'</code></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=221>Block Jacobi with ILU(0) on the local blocks.</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Additive Schwarz</TD>
|
||||
<TD ALIGN="LEFT"><code>'AS'</code></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=221>Restricted Additive Schwarz (RAS),
|
||||
with overlap 1 and ILU(0) on the local blocks.</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Multilevel</TD>
|
||||
<TD ALIGN="LEFT"><code>'ML'</code></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=221>Multi-level hybrid preconditioner (additive on the
|
||||
same level and multiplicative through the levels),
|
||||
with post-smoothing only.
|
||||
Number of levels: 2.
|
||||
Post-smoother: RAS with overlap 1 and ILU(0)
|
||||
on the local blocks.
|
||||
Aggregation: decoupled smoothed aggregation with
|
||||
threshold <IMG
|
||||
WIDTH="45" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img86.png"
|
||||
ALT="$\theta = 0$">.
|
||||
Coarsest matrix: distributed among the processors.
|
||||
Coarsest-level solver:
|
||||
4 sweeps of the block-Jacobi solver,
|
||||
with LU (or ILU) factorization of the blocks
|
||||
(UMFPACK for the double precision versions and
|
||||
SuperLU for the single precision ones, if the packages
|
||||
have been installed; ILU(0), otherwise).</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
</DIV><P></P>
|
||||
<BR>
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:ex_3lh"></A><A NAME="928"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
|
||||
Setup of a hybrid three-level Schwarz preconditioner.</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV><TABLE WIDTH="90%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
... ...
|
||||
! set a three-level hybrid Schwarz preconditioner, which uses
|
||||
! block Jacobi (with ILU(0) on the blocks) as post-smoother,
|
||||
! a coarsest matrix replicated on the processors, and the
|
||||
! LU factorization from UMFPACK as coarse-level solver
|
||||
call mld_precinit(P,'ML',info,nlev=3)
|
||||
call_mld_precset(P,mld_smoother_type_,'BJAC',info)
|
||||
call mld_precset(P,mld_coarse_mat_,'REPL',info)
|
||||
call mld_precset(P,mld_coarse_solve_,'UMF',info)
|
||||
... ...
|
||||
</PRE>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV>
|
||||
<P>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:ex_3la"></A><A NAME="930"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
|
||||
Setup of an additive three-level Schwarz preconditioner.</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV><TABLE WIDTH="90%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
... ...
|
||||
! set a three-level additive Schwarz preconditioner, which uses
|
||||
! RAS (with overlap 1 and ILU(0) on the blocks) as pre- and
|
||||
! post-smoother, and 5 block-Jacobi sweeps (with UMFPACK LU
|
||||
! on the blocks) as distributed coarsest-level solver
|
||||
call mld_precinit(P,'ML',info,nlev=3)
|
||||
call mld_precset(P,mld_ml_type_,'ADD',info)
|
||||
call_mld_precset(P,mld_smoother_pos_,'TWOSIDE',info)
|
||||
call mld_precset(P,mld_coarse_sweeps_,5,info)
|
||||
... ...
|
||||
</PRE>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV>
|
||||
<P>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:ex_1l"></A><A NAME="932"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
|
||||
Setup of a one-level Schwarz preconditioner.</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV><TABLE WIDTH="90%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
... ...
|
||||
! set RAS with overlap 2 and ILU(0) on the local blocks
|
||||
call mld_precinit(P,'AS',info)
|
||||
call mld_precset(P,mld_sub_ovr_,2,info)
|
||||
... ...
|
||||
</PRE>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER">
|
||||
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html233"
|
||||
HREF="node15.html">Examples</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html227"
|
||||
<A NAME="tex2html231"
|
||||
HREF="node15.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
||||
SRC="file:/usr/share/latex2html/icons/next.png"></A>
|
||||
<A NAME="tex2html223"
|
||||
HREF="node13.html">
|
||||
<A NAME="tex2html227"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
||||
SRC="file:/usr/share/latex2html/icons/up.png"></A>
|
||||
<A NAME="tex2html219"
|
||||
<A NAME="tex2html221"
|
||||
HREF="node13.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
||||
SRC="file:/usr/share/latex2html/icons/prev.png"></A>
|
||||
<A NAME="tex2html225"
|
||||
<A NAME="tex2html229"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
||||
SRC="file:/usr/share/latex2html/icons/contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html228"
|
||||
HREF="node15.html">User Interface</A>
|
||||
<B> Up:</B> <A NAME="tex2html224"
|
||||
HREF="node13.html">Getting Started</A>
|
||||
<B> Previous:</B> <A NAME="tex2html220"
|
||||
HREF="node13.html">Getting Started</A>
|
||||
<B> <A NAME="tex2html226"
|
||||
<B> Next:</B> <A NAME="tex2html232"
|
||||
HREF="node15.html">Examples</A>
|
||||
<B> Up:</B> <A NAME="tex2html228"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html222"
|
||||
HREF="node13.html">Smoothed Aggregation</A>
|
||||
<B> <A NAME="tex2html230"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user