mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 14:44:55 +00:00
Changes to docs to highlight new stuff in MLD internals.
This commit is contained in:
+53
-42
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>userhtml</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -22,7 +18,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html25"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
@@ -37,30 +34,30 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<B> <A NAME="tex2html24"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
<FONT SIZE="+2"><B>MLD2P4
|
||||
<BIG CLASS="XXLARGE"><B>MLD2P4
|
||||
<BR>
|
||||
<BR>
|
||||
User's and Reference Guide</B></FONT>
|
||||
<BR><I><FONT SIZE="+1">A guide for the MultiLevel Domain Decomposition
|
||||
User's and Reference Guide</B></BIG>
|
||||
<BR><SPAN CLASS="textit"><BIG CLASS="LARGE">A guide for the MultiLevel Domain Decomposition
|
||||
Parallel Preconditioners Package
|
||||
based on PSBLAS</FONT></I>
|
||||
based on PSBLAS</BIG></SPAN>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR><FONT SIZE="+1"><B>Pasqua D'Ambra</B></FONT>
|
||||
<BR><FONT SIZE="+1">IAC-CNR, Naples, Italy
|
||||
<BR><BIG CLASS="LARGE"><B>Pasqua D'Ambra</B></BIG>
|
||||
<BR><BIG CLASS="LARGE">IAC-CNR, Naples, Italy
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR><FONT SIZE="+1"><B>Daniela di Serafino</B></FONT>
|
||||
<BR><FONT SIZE="+1">University of Campania ``Luigi Vanvitelli'', Caserta, Italy
|
||||
<BR><BIG CLASS="LARGE"><B>Daniela di Serafino</B></BIG>
|
||||
<BR><BIG CLASS="LARGE">University of Campania “Luigi Vanvitelli”, Caserta, Italy
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR><FONT SIZE="+1"><B>Salvatore Filippone</B></FONT>
|
||||
<BR><FONT SIZE="+1">Cranfield University, Cranfield, United Kingdom
|
||||
<BR><BIG CLASS="LARGE"><B>Salvatore Filippone</B></BIG>
|
||||
<BR><BIG CLASS="LARGE">Cranfield University, Cranfield, United Kingdom
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
@@ -78,18 +75,18 @@ July 31, 2017
|
||||
|
||||
<BR>
|
||||
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG></BIG>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"></A>
|
||||
|
||||
<UL>
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html27"
|
||||
HREF="node1.html">Abstract</A>
|
||||
<LI><A NAME="tex2html28"
|
||||
@@ -140,33 +137,47 @@ July 31, 2017
|
||||
HREF="node18.html">User Interface</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html45"
|
||||
HREF="node19.html">Subroutine init</A>
|
||||
HREF="node19.html">Method init</A>
|
||||
<LI><A NAME="tex2html46"
|
||||
HREF="node20.html">Subroutine set</A>
|
||||
HREF="node20.html">Method set</A>
|
||||
<LI><A NAME="tex2html47"
|
||||
HREF="node21.html">Subroutine build</A>
|
||||
HREF="node21.html">Method hierarchy_build</A>
|
||||
<LI><A NAME="tex2html48"
|
||||
HREF="node22.html">Subroutine hierarchy_build</A>
|
||||
HREF="node22.html">Method smoothers_build</A>
|
||||
<LI><A NAME="tex2html49"
|
||||
HREF="node23.html">Subroutine smoothers_build</A>
|
||||
HREF="node23.html">Method build</A>
|
||||
<LI><A NAME="tex2html50"
|
||||
HREF="node24.html">Subroutine apply</A>
|
||||
HREF="node24.html">Method apply</A>
|
||||
<LI><A NAME="tex2html51"
|
||||
HREF="node25.html">Subroutine free</A>
|
||||
HREF="node25.html">Method free</A>
|
||||
<LI><A NAME="tex2html52"
|
||||
HREF="node26.html">Subroutine descr</A>
|
||||
HREF="node26.html">Method descr</A>
|
||||
<LI><A NAME="tex2html53"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html54"
|
||||
HREF="node28.html">Method: dump</A>
|
||||
<LI><A NAME="tex2html55"
|
||||
HREF="node29.html">Method: clone</A>
|
||||
<LI><A NAME="tex2html56"
|
||||
HREF="node30.html">Method: sizeof</A>
|
||||
<LI><A NAME="tex2html57"
|
||||
HREF="node31.html">Method: allocate_wrk</A>
|
||||
<LI><A NAME="tex2html58"
|
||||
HREF="node32.html">Method: free_wrk</A>
|
||||
</UL>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html53"
|
||||
HREF="node27.html">Adding new smoother and solver objects to MLD2P4</A>
|
||||
<LI><A NAME="tex2html54"
|
||||
HREF="node28.html">Error Handling</A>
|
||||
<LI><A NAME="tex2html55"
|
||||
HREF="node29.html">License</A>
|
||||
<LI><A NAME="tex2html56"
|
||||
HREF="node30.html">Bibliography</A>
|
||||
<LI><A NAME="tex2html57"
|
||||
HREF="node31.html">About this document ...</A>
|
||||
<LI><A NAME="tex2html59"
|
||||
HREF="node33.html">Adding new smoother and solver objects to MLD2P4</A>
|
||||
<LI><A NAME="tex2html60"
|
||||
HREF="node34.html">Error Handling</A>
|
||||
<LI><A NAME="tex2html61"
|
||||
HREF="node35.html">License</A>
|
||||
<LI><A NAME="tex2html62"
|
||||
HREF="node36.html">Bibliography</A>
|
||||
<LI><A NAME="tex2html63"
|
||||
HREF="node37.html">About this document ...</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
+35
-37
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Abstract</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,35 +21,36 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html68"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html74"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html64"
|
||||
<A NAME="tex2html70"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html58"
|
||||
<A NAME="tex2html64"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html66"
|
||||
<A NAME="tex2html72"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html69"
|
||||
<B> Next:</B> <A NAME="tex2html75"
|
||||
HREF="node2.html">Contents</A>
|
||||
<B> Up:</B> <A NAME="tex2html65"
|
||||
<B> Up:</B> <A NAME="tex2html71"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html59"
|
||||
<B> Previous:</B> <A NAME="tex2html65"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> <A NAME="tex2html67"
|
||||
<B> <A NAME="tex2html73"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00010000000000000000">
|
||||
Abstract</A>
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
|
||||
MLD2P4 (M<SMALL>ULTI</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE
|
||||
BASED ON </SMALL>PSBLAS) is a package of parallel algebraic multilevel preconditioners.
|
||||
@@ -64,55 +61,56 @@ multigrid methods. In the multilevel case, a purely algebraic approach is applie
|
||||
generate coarse-level corrections, so that no geometric background is needed
|
||||
concerning the matrix to be preconditioned. The matrix is assumed to be square,
|
||||
real or complex.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">MLD2P4 has been designed to provide scalable and easy-to-use preconditioners
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">MLD2P4 has been designed to provide scalable and easy-to-use preconditioners
|
||||
in the context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms)
|
||||
computational framework and can be used in conjuction with the Krylov solvers
|
||||
available in this framework. MLD2P4 enables the user to easily specify different
|
||||
features of an algebraic multilevel preconditioner, thus allowing to search
|
||||
for the ``best'' preconditioner for the problem at hand.
|
||||
</FONT></FONT></FONT>
|
||||
for the “best” preconditioner for the problem at hand.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The package employs object-oriented design techniques in
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The package employs object-oriented design techniques in
|
||||
Fortran 2003, with interfaces to additional third party libraries
|
||||
such as MUMPS, UMFPACK, SuperLU, and SuperLU_Dist, which
|
||||
can be exploited in building multilevel preconditioners. The parallel
|
||||
implementation is based on a Single Program Multiple Data (SPMD)
|
||||
paradigm; the inter-process communication is based on MPI and
|
||||
is managed mainly through PSBLAS.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">This guide provides a brief description of the functionalities and
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">This guide provides a brief description of the functionalities and
|
||||
the user interface of MLD2P4.
|
||||
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
|
||||
</FONT></FONT></FONT><HR>
|
||||
</BIG></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html68"
|
||||
<A NAME="tex2html74"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html64"
|
||||
<A NAME="tex2html70"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html58"
|
||||
<A NAME="tex2html64"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html66"
|
||||
<A NAME="tex2html72"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html69"
|
||||
<B> Next:</B> <A NAME="tex2html75"
|
||||
HREF="node2.html">Contents</A>
|
||||
<B> Up:</B> <A NAME="tex2html65"
|
||||
<B> Up:</B> <A NAME="tex2html71"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html59"
|
||||
<B> Previous:</B> <A NAME="tex2html65"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> <A NAME="tex2html67"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html73"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+17
-20
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Bug reporting</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,35 +21,36 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html205"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html212"
|
||||
HREF="node11.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html201"
|
||||
<A NAME="tex2html208"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html195"
|
||||
<A NAME="tex2html202"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html203"
|
||||
<A NAME="tex2html210"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html206"
|
||||
<B> Next:</B> <A NAME="tex2html213"
|
||||
HREF="node11.html">Example and test programs</A>
|
||||
<B> Up:</B> <A NAME="tex2html202"
|
||||
<B> Up:</B> <A NAME="tex2html209"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> Previous:</B> <A NAME="tex2html196"
|
||||
<B> Previous:</B> <A NAME="tex2html203"
|
||||
HREF="node9.html">Configuration options</A>
|
||||
<B> <A NAME="tex2html204"
|
||||
<B> <A NAME="tex2html211"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00054000000000000000">
|
||||
Bug reporting</A>
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
If you find any bugs in our codes, please report them through our
|
||||
issues page on <BR><TT><A NAME="tex2html9"
|
||||
HREF="https://github.com/sfilippone/mld2p4-2/issues">https://github.com/sfilippone/mld2p4-2/issues</A></TT>
|
||||
@@ -61,9 +58,9 @@ issues page on <BR><TT><A NAME="tex2html9"
|
||||
To enable us to track the bug, please provide a log from the failing
|
||||
application, the test conditions, and ideally a self-contained test
|
||||
program reproducing the issue.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+18
-21
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Example and test programs</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -24,40 +20,41 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html215"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html222"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html211"
|
||||
<A NAME="tex2html218"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html207"
|
||||
<A NAME="tex2html214"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html213"
|
||||
<A NAME="tex2html220"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html216"
|
||||
<B> Next:</B> <A NAME="tex2html223"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<B> Up:</B> <A NAME="tex2html212"
|
||||
<B> Up:</B> <A NAME="tex2html219"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> Previous:</B> <A NAME="tex2html208"
|
||||
<B> Previous:</B> <A NAME="tex2html215"
|
||||
HREF="node10.html">Bug reporting</A>
|
||||
<B> <A NAME="tex2html214"
|
||||
<B> <A NAME="tex2html221"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00055000000000000000"></A><A NAME="sec:ex_and_test"></A>
|
||||
<BR>
|
||||
Example and test programs
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
The package contains the <code>examples</code> and <code>tests</code> directories;
|
||||
both of them are further divided into <code>fileread</code> and
|
||||
<code>pdegen</code> subdirectories. Their purpose is as follows:
|
||||
</FONT></FONT></FONT><DL>
|
||||
</BIG></BIG></BIG><DL>
|
||||
<DT><STRONG><TT>examples</TT></STRONG></DT>
|
||||
<DD>contains a set of simple example programs with a
|
||||
predefined choice of preconditioners, selectable via integer
|
||||
@@ -70,13 +67,13 @@ both of them are further divided into <code>fileread</code> and
|
||||
subdirectories, to experiment with the full range of preconditioners
|
||||
implemented in the package.
|
||||
</DD>
|
||||
</DL><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</DL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
The <code>fileread</code> directories contain sample programs that read
|
||||
sparse matrices from files, according to the Matrix Market or the
|
||||
Harwell-Boeing storage format; the <code>pdegen</code> programs generate
|
||||
matrices in full parallel mode from the discretization of a sample partial
|
||||
differential equation.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+50
-52
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Multigrid Background</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,49 +21,50 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html227"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html234"
|
||||
HREF="node13.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html223"
|
||||
<A NAME="tex2html230"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html217"
|
||||
<A NAME="tex2html224"
|
||||
HREF="node11.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html225"
|
||||
<A NAME="tex2html232"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html228"
|
||||
<B> Next:</B> <A NAME="tex2html235"
|
||||
HREF="node13.html">AMG preconditioners</A>
|
||||
<B> Up:</B> <A NAME="tex2html224"
|
||||
<B> Up:</B> <A NAME="tex2html231"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html218"
|
||||
<B> Previous:</B> <A NAME="tex2html225"
|
||||
HREF="node11.html">Example and test programs</A>
|
||||
<B> <A NAME="tex2html226"
|
||||
<B> <A NAME="tex2html233"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00060000000000000000"></A><A NAME="sec:background"></A>
|
||||
<BR>
|
||||
Multigrid Background
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Multigrid preconditioners, coupled with Krylov iterative
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Multigrid preconditioners, coupled with Krylov iterative
|
||||
solvers, are widely used in the parallel solution of large and sparse linear systems,
|
||||
because of their optimality in the solution of linear systems arising from the
|
||||
discretization of scalar elliptic Partial Differential Equations (PDEs) on regular grids.
|
||||
Optimality, also known as algorithmic scalability, is the property
|
||||
of having a computational cost per iteration that depends linearly on
|
||||
the problem size, and a convergence rate that is independent of the problem size.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Multigrid preconditioners are based on a recursive application of a two-grid process
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Multigrid preconditioners are based on a recursive application of a two-grid process
|
||||
consisting of smoother iterations and a coarse-space (or coarse-level) correction.
|
||||
The smoothers may be either basic iterative methods, such as the Jacobi and Gauss-Seidel ones,
|
||||
or more complex subspace-correction methods, such as the Schwarz ones.
|
||||
@@ -90,75 +87,76 @@ interplay between fine and coarse levels, e.g., when matrices with highly varyin
|
||||
are considered. The second approach performs a fully automatic coarsening and enforces the
|
||||
interplay between fine and coarse level by suitably choosing the coarse space and
|
||||
the coarse-to-fine interpolation (see, e.g., [<A
|
||||
HREF="node30.html#Briggs2000">3</A>,<A
|
||||
HREF="node30.html#Stuben_01">23</A>,<A
|
||||
HREF="node30.html#dd2_96">21</A>] for details.)
|
||||
</FONT></FONT></FONT>
|
||||
HREF="node36.html#Briggs2000">3</A>,<A
|
||||
HREF="node36.html#Stuben_01">23</A>,<A
|
||||
HREF="node36.html#dd2_96">21</A>] for details.)
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">MLD2P4 uses a pure algebraic approach, based on the smoothed
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">MLD2P4 uses a pure algebraic approach, based on the smoothed
|
||||
aggregation algorithm [<A
|
||||
HREF="node30.html#BREZINA_VANEK">2</A>,<A
|
||||
HREF="node30.html#VANEK_MANDEL_BREZINA">25</A>],
|
||||
HREF="node36.html#BREZINA_VANEK">2</A>,<A
|
||||
HREF="node36.html#VANEK_MANDEL_BREZINA">25</A>],
|
||||
for building the sequence of coarse matrices and transfer operators,
|
||||
starting from the original one.
|
||||
A decoupled version of this algorithm is implemented, where the smoothed
|
||||
aggregation is applied locally to each submatrix [<A
|
||||
HREF="node30.html#TUMINARO_TONG">24</A>].
|
||||
HREF="node36.html#TUMINARO_TONG">24</A>].
|
||||
A brief description of the AMG preconditioners implemented in MLD2P4 is given in
|
||||
Sections <A HREF="node13.html#sec:multilevel">4.1</A>-<A HREF="node15.html#sec:smoothers">4.3</A>. For further details the reader
|
||||
is referred to [<A
|
||||
HREF="node30.html#para_04">4</A>,<A
|
||||
HREF="node30.html#aaecc_07">5</A>,<A
|
||||
HREF="node30.html#apnum_07">7</A>,<A
|
||||
HREF="node30.html#MLD2P4_TOMS">8</A>].
|
||||
</FONT></FONT></FONT>
|
||||
HREF="node36.html#para_04">4</A>,<A
|
||||
HREF="node36.html#aaecc_07">5</A>,<A
|
||||
HREF="node36.html#apnum_07">7</A>,<A
|
||||
HREF="node36.html#MLD2P4_TOMS">8</A>].
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">We note that optimal multigrid preconditioners do not necessarily correspond
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">We note that optimal multigrid preconditioners do not necessarily correspond
|
||||
to minimum execution times in a parallel setting. Indeed, to obtain effective parallel
|
||||
multigrid preconditioners, a tradeoff between the optimality and the cost of building and
|
||||
applying the smoothers and the coarse-space corrections must be achieved. Effective
|
||||
parallel preconditioners require algorithmic scalability to be coupled with implementation
|
||||
scalability, i.e., a computational cost per iteration which remains (almost) constant as
|
||||
the number of parallel processors increases.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html229"
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html236"
|
||||
HREF="node13.html">AMG preconditioners</A>
|
||||
<LI><A NAME="tex2html230"
|
||||
<LI><A NAME="tex2html237"
|
||||
HREF="node14.html">Smoothed Aggregation</A>
|
||||
<LI><A NAME="tex2html231"
|
||||
<LI><A NAME="tex2html238"
|
||||
HREF="node15.html">Smoothers and coarsest-level solvers</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html227"
|
||||
<A NAME="tex2html234"
|
||||
HREF="node13.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html223"
|
||||
<A NAME="tex2html230"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html217"
|
||||
<A NAME="tex2html224"
|
||||
HREF="node11.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html225"
|
||||
<A NAME="tex2html232"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html228"
|
||||
<B> Next:</B> <A NAME="tex2html235"
|
||||
HREF="node13.html">AMG preconditioners</A>
|
||||
<B> Up:</B> <A NAME="tex2html224"
|
||||
<B> Up:</B> <A NAME="tex2html231"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html218"
|
||||
<B> Previous:</B> <A NAME="tex2html225"
|
||||
HREF="node11.html">Example and test programs</A>
|
||||
<B> <A NAME="tex2html226"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html233"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+90
-91
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>AMG preconditioners</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,48 +21,50 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html242"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html249"
|
||||
HREF="node14.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html238"
|
||||
<A NAME="tex2html245"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html232"
|
||||
<A NAME="tex2html239"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html240"
|
||||
<A NAME="tex2html247"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html243"
|
||||
<B> Next:</B> <A NAME="tex2html250"
|
||||
HREF="node14.html">Smoothed Aggregation</A>
|
||||
<B> Up:</B> <A NAME="tex2html239"
|
||||
<B> Up:</B> <A NAME="tex2html246"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<B> Previous:</B> <A NAME="tex2html233"
|
||||
<B> Previous:</B> <A NAME="tex2html240"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<B> <A NAME="tex2html241"
|
||||
<B> <A NAME="tex2html248"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00061000000000000000"></A><A NAME="sec:multilevel"></A>
|
||||
<BR>
|
||||
AMG preconditioners
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">In order to describe the AMG preconditioners available in MLD2P4, we consider a
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">In order to describe the AMG preconditioners available in MLD2P4, we consider a
|
||||
linear system
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<BR>
|
||||
<DIV ALIGN="RIGHT">
|
||||
<DIV ALIGN="RIGHT" CLASS="mathdisplay">
|
||||
|
||||
<!-- MATH
|
||||
\begin{equation}
|
||||
Ax=b,
|
||||
\end{equation}
|
||||
-->
|
||||
<A NAME="eq:system"></A>
|
||||
<TABLE WIDTH="100%" ALIGN="CENTER">
|
||||
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:system"></A><IMG
|
||||
WIDTH="58" HEIGHT="30" BORDER="0"
|
||||
@@ -74,40 +72,40 @@ Ax=b,
|
||||
ALT="\begin{displaymath}
|
||||
Ax=b,
|
||||
\end{displaymath}"></TD>
|
||||
<TD WIDTH=10 ALIGN="RIGHT">
|
||||
(2)</TD></TR>
|
||||
<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT">
|
||||
(<SPAN CLASS="arabic">2</SPAN>)</TD></TR>
|
||||
</TABLE>
|
||||
<BR CLEAR="ALL"></DIV><P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<BR CLEAR="ALL"></DIV><P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
where <!-- MATH
|
||||
$A=(a_{ij}) \in \mathbb{R}^{n \times n}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="137" HEIGHT="38" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img5.png"
|
||||
ALT="$A=(a_{ij}) \in \mathbb{R}^{n \times n}$"> is a nonsingular sparse matrix;
|
||||
for ease of presentation we assume <IMG
|
||||
ALT="$A=(a_{ij}) \in \mathbb{R}^{n \times n}$"></SPAN> is a nonsingular sparse matrix;
|
||||
for ease of presentation we assume <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img3.png"
|
||||
ALT="$A$"> has a symmetric sparsity
|
||||
ALT="$A$"></SPAN> has a symmetric sparsity
|
||||
pattern.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Let us consider as finest index space the set of row (column) indices of <IMG
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Let us consider as finest index space the set of row (column) indices of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img3.png"
|
||||
ALT="$A$">, i.e.,
|
||||
ALT="$A$"></SPAN>, i.e.,
|
||||
<!-- MATH
|
||||
$\Omega = \{1, 2, \ldots, n\}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="132" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img6.png"
|
||||
ALT="$\Omega = \{1, 2, \ldots, n\}$">.
|
||||
ALT="$\Omega = \{1, 2, \ldots, n\}$"></SPAN>.
|
||||
Any algebraic multilevel preconditioners implemented in MLD2P4 generates
|
||||
a hierarchy of index spaces and a corresponding hierarchy of matrices,
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
\Omega^1 \equiv \Omega \supset \Omega^2 \supset \ldots \supset \Omega^{nlev},
|
||||
@@ -121,49 +119,49 @@ a hierarchy of index spaces and a corresponding hierarchy of matrices,
|
||||
ALT="\begin{displaymath}\Omega^1 \equiv \Omega \supset \Omega^2 \supset \ldots \supset \Omega^{nlev},␍\quad A^1 \equiv A, A^2, \ldots, A^{nlev}, \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
by using the information contained in <IMG
|
||||
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
by using the information contained in <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img3.png"
|
||||
ALT="$A$">, without assuming any
|
||||
knowledge of the geometry of the problem from which <IMG
|
||||
ALT="$A$"></SPAN>, without assuming any
|
||||
knowledge of the geometry of the problem from which <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img3.png"
|
||||
ALT="$A$"> originates.
|
||||
ALT="$A$"></SPAN> originates.
|
||||
A vector space <!-- MATH
|
||||
$\mathbb{R}^{n_{k}}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="33" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img8.png"
|
||||
ALT="$\mathbb{R}^{n_{k}}$"> is associated with <IMG
|
||||
ALT="$\mathbb{R}^{n_{k}}$"></SPAN> is associated with <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img9.png"
|
||||
ALT="$\Omega^k$">,
|
||||
where <IMG
|
||||
ALT="$\Omega^k$"></SPAN>,
|
||||
where <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="23" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img10.png"
|
||||
ALT="$n_k$"> is the size of <IMG
|
||||
ALT="$n_k$"></SPAN> is the size of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img9.png"
|
||||
ALT="$\Omega^k$">.
|
||||
For all <IMG
|
||||
ALT="$\Omega^k$"></SPAN>.
|
||||
For all <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="71" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img11.png"
|
||||
ALT="$k < nlev$">, a restriction operator and a prolongation one are built,
|
||||
which connect two levels <IMG
|
||||
ALT="$k < nlev$"></SPAN>, a restriction operator and a prolongation one are built,
|
||||
which connect two levels <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="14" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img12.png"
|
||||
ALT="$k$"> and <IMG
|
||||
ALT="$k$"></SPAN> and <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="44" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img13.png"
|
||||
ALT="$k+1$">:
|
||||
</FONT></FONT></FONT>
|
||||
ALT="$k+1$"></SPAN>:
|
||||
</BIG></BIG></BIG>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
P^k \in \mathbb{R}^{n_k \times n_{k+1}}, \quad
|
||||
P^k \in \mathbb{R}^{n_k \times n_{k+1}}, \quad
|
||||
R^k \in \mathbb{R}^{n_{k+1}\times n_k};
|
||||
\end{displaymath}
|
||||
-->
|
||||
@@ -174,15 +172,15 @@ P^k \in \mathbb{R}^{n_k \times n_{k+1}}, \quad
|
||||
ALT="\begin{displaymath}␍ P^k \in \mathbb{R}^{n_k \times n_{k+1}}, \quad ␍ R^k \in \mathbb{R}^{n_{k+1}\times n_k};␍\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
the matrix <IMG
|
||||
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
the matrix <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img15.png"
|
||||
ALT="$A^{k+1}$"> is computed by using the previous operators according
|
||||
ALT="$A^{k+1}$"></SPAN> is computed by using the previous operators according
|
||||
to the Galerkin approach, i.e.,
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
A^{k+1}=R^kA^kP^k.
|
||||
@@ -195,34 +193,34 @@ A^{k+1}=R^kA^kP^k.
|
||||
ALT="\begin{displaymath}␍ A^{k+1}=R^kA^kP^k.␍\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
In the current implementation of MLD2P4 we have <IMG
|
||||
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
In the current implementation of MLD2P4 we have <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="95" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img17.png"
|
||||
ALT="$R^k=(P^k)^T$">
|
||||
A smoother with iteration matrix <IMG
|
||||
ALT="$R^k=(P^k)^T$"></SPAN>
|
||||
A smoother with iteration matrix <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="32" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img18.png"
|
||||
ALT="$M^k$"> is set up at each level <IMG
|
||||
ALT="$M^k$"></SPAN> is set up at each level <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="71" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img11.png"
|
||||
ALT="$k < nlev$">, and a solver
|
||||
ALT="$k < nlev$"></SPAN>, and a solver
|
||||
is set up at the coarsest level, so that they are ready for application
|
||||
(for example, setting up a solver based on the <IMG
|
||||
(for example, setting up a solver based on the <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="30" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img19.png"
|
||||
ALT="$LU$"> factorization means computing
|
||||
and storing the <IMG
|
||||
ALT="$LU$"></SPAN> factorization means computing
|
||||
and storing the <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$L$"> and <IMG
|
||||
ALT="$L$"></SPAN> and <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="18" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$U$"> factors). The construction of the hierarchy of AMG components
|
||||
ALT="$U$"></SPAN> factors). The construction of the hierarchy of AMG components
|
||||
described so far corresponds to the so-called build phase of the preconditioner.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:application_alg"></A><A NAME="524"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 1:</STRONG>
|
||||
@@ -259,53 +257,54 @@ end
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The components produced in the build phase may be combined in several ways
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The components produced in the build phase may be combined in several ways
|
||||
to obtain different multilevel preconditioners;
|
||||
this is done in the application phase, i.e., in the computation of a vector
|
||||
of type <IMG
|
||||
of type <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="82" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img23.png"
|
||||
ALT="$w=B^{-1}v$">, where <IMG
|
||||
ALT="$w=B^{-1}v$"></SPAN>, where <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="19" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img24.png"
|
||||
ALT="$B$"> denotes the preconditioner, usually within an iteration
|
||||
ALT="$B$"></SPAN> denotes the preconditioner, usually within an iteration
|
||||
of a Krylov solver [<A
|
||||
HREF="node30.html#Saad_book">20</A>]. An example of such a combination, known as
|
||||
HREF="node36.html#Saad_book">20</A>]. An example of such a combination, known as
|
||||
V-cycle, is given in Figure <A HREF="#fig:application_alg">1</A>. In this case, a single iteration
|
||||
of the same smoother is used before and after the the recursive call to the V-cycle (i.e.,
|
||||
in the pre-smoothing and post-smoothing phases); however, different choices can be
|
||||
performed. Other cycles can be defined; in MLD2P4, we implemented the standard V-cycle
|
||||
and W-cycle [<A
|
||||
HREF="node30.html#Briggs2000">3</A>], and a version of the K-cycle described
|
||||
HREF="node36.html#Briggs2000">3</A>], and a version of the K-cycle described
|
||||
in [<A
|
||||
HREF="node30.html#Notay2008">19</A>].
|
||||
</FONT></FONT></FONT>
|
||||
HREF="node36.html#Notay2008">19</A>].
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html242"
|
||||
<A NAME="tex2html249"
|
||||
HREF="node14.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html238"
|
||||
<A NAME="tex2html245"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html232"
|
||||
<A NAME="tex2html239"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html240"
|
||||
<A NAME="tex2html247"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html243"
|
||||
<B> Next:</B> <A NAME="tex2html250"
|
||||
HREF="node14.html">Smoothed Aggregation</A>
|
||||
<B> Up:</B> <A NAME="tex2html239"
|
||||
<B> Up:</B> <A NAME="tex2html246"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<B> Previous:</B> <A NAME="tex2html233"
|
||||
<B> Previous:</B> <A NAME="tex2html240"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<B> <A NAME="tex2html241"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html248"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+136
-135
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Smoothed Aggregation</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,130 +21,132 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html254"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html261"
|
||||
HREF="node15.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html250"
|
||||
<A NAME="tex2html257"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html244"
|
||||
<A NAME="tex2html251"
|
||||
HREF="node13.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html252"
|
||||
<A NAME="tex2html259"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html255"
|
||||
<B> Next:</B> <A NAME="tex2html262"
|
||||
HREF="node15.html">Smoothers and coarsest-level solvers</A>
|
||||
<B> Up:</B> <A NAME="tex2html251"
|
||||
<B> Up:</B> <A NAME="tex2html258"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<B> Previous:</B> <A NAME="tex2html245"
|
||||
<B> Previous:</B> <A NAME="tex2html252"
|
||||
HREF="node13.html">AMG preconditioners</A>
|
||||
<B> <A NAME="tex2html253"
|
||||
<B> <A NAME="tex2html260"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00062000000000000000"></A><A NAME="sec:aggregation"></A>
|
||||
<BR>
|
||||
Smoothed Aggregation
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">In order to define the prolongator <IMG
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">In order to define the prolongator <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img25.png"
|
||||
ALT="$P^k$">, used to compute
|
||||
the coarse-level matrix <IMG
|
||||
ALT="$P^k$"></SPAN>, used to compute
|
||||
the coarse-level matrix <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img15.png"
|
||||
ALT="$A^{k+1}$">, MLD2P4 uses the smoothed aggregation
|
||||
ALT="$A^{k+1}$"></SPAN>, MLD2P4 uses the smoothed aggregation
|
||||
algorithm described in [<A
|
||||
HREF="node30.html#BREZINA_VANEK">2</A>,<A
|
||||
HREF="node30.html#VANEK_MANDEL_BREZINA">25</A>].
|
||||
HREF="node36.html#BREZINA_VANEK">2</A>,<A
|
||||
HREF="node36.html#VANEK_MANDEL_BREZINA">25</A>].
|
||||
The basic idea of this algorithm is to build a coarse set of indices
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img26.png"
|
||||
ALT="$\Omega^{k+1}$"> by suitably grouping the indices of <IMG
|
||||
ALT="$\Omega^{k+1}$"></SPAN> by suitably grouping the indices of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img9.png"
|
||||
ALT="$\Omega^k$"> into disjoint
|
||||
ALT="$\Omega^k$"></SPAN> into disjoint
|
||||
subsets (aggregates), and to define the coarse-to-fine space transfer operator
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img25.png"
|
||||
ALT="$P^k$"> by applying a suitable smoother to a simple piecewise constant
|
||||
ALT="$P^k$"></SPAN> by applying a suitable smoother to a simple piecewise constant
|
||||
prolongation operator, with the aim of improving the quality of the coarse-space correction.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Three main steps can be identified in the smoothed aggregation procedure:
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Three main steps can be identified in the smoothed aggregation procedure:
|
||||
</BIG></BIG></BIG>
|
||||
<OL>
|
||||
<LI>aggregation of the indices of <IMG
|
||||
<LI>aggregation of the indices of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img9.png"
|
||||
ALT="$\Omega^k$"> to obtain <IMG
|
||||
ALT="$\Omega^k$"></SPAN> to obtain <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img26.png"
|
||||
ALT="$\Omega^{k+1}$">;
|
||||
ALT="$\Omega^{k+1}$"></SPAN>;
|
||||
</LI>
|
||||
<LI>construction of the prolongator <IMG
|
||||
<LI>construction of the prolongator <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img25.png"
|
||||
ALT="$P^k$">;
|
||||
ALT="$P^k$"></SPAN>;
|
||||
</LI>
|
||||
<LI>application of <IMG
|
||||
<LI>application of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img25.png"
|
||||
ALT="$P^k$"> and <IMG
|
||||
ALT="$P^k$"></SPAN> and <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="95" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img17.png"
|
||||
ALT="$R^k=(P^k)^T$"> to build <IMG
|
||||
ALT="$R^k=(P^k)^T$"></SPAN> to build <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img15.png"
|
||||
ALT="$A^{k+1}$">.
|
||||
ALT="$A^{k+1}$"></SPAN>.
|
||||
</LI>
|
||||
</OL><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</OL><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">In order to perform the coarsening step, the smoothed aggregation algorithm
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">In order to perform the coarsening step, the smoothed aggregation algorithm
|
||||
described in [<A
|
||||
HREF="node30.html#VANEK_MANDEL_BREZINA">25</A>] is used. In this algorithm,
|
||||
HREF="node36.html#VANEK_MANDEL_BREZINA">25</A>] is used. In this algorithm,
|
||||
each index <!-- MATH
|
||||
$j \in \Omega^{k+1}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="72" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img27.png"
|
||||
ALT="$j \in \Omega^{k+1}$"> corresponds to an aggregate <IMG
|
||||
ALT="$j \in \Omega^{k+1}$"></SPAN> corresponds to an aggregate <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$\Omega^k_j$"> of <IMG
|
||||
ALT="$\Omega^k_j$"></SPAN> of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img9.png"
|
||||
ALT="$\Omega^k$">,
|
||||
ALT="$\Omega^k$"></SPAN>,
|
||||
consisting of a suitably chosen index <!-- MATH
|
||||
$i \in \Omega^k$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="52" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img29.png"
|
||||
ALT="$i \in \Omega^k$"> and indices that are (usually) contained in a
|
||||
strongly-coupled neighborood of <IMG
|
||||
ALT="$i \in \Omega^k$"></SPAN> and indices that are (usually) contained in a
|
||||
strongly-coupled neighborood of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="11" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img30.png"
|
||||
ALT="$i$">, i.e.,
|
||||
</FONT></FONT></FONT>
|
||||
ALT="$i$"></SPAN>, i.e.,
|
||||
</BIG></BIG></BIG>
|
||||
<BR>
|
||||
<DIV ALIGN="RIGHT">
|
||||
<DIV ALIGN="RIGHT" CLASS="mathdisplay">
|
||||
|
||||
<!-- MATH
|
||||
\begin{equation}
|
||||
\Omega^k_j \subset \mathcal{N}_i^k(\theta) =
|
||||
\Omega^k_j \subset \mathcal{N}_i^k(\theta) =
|
||||
\left\{ r \in \Omega^k: |a_{ir}^k| > \theta \sqrt{|a_{ii}^ka_{rr}^k|} \right \} \cup \left\{ i \right\},
|
||||
\end{equation}
|
||||
-->
|
||||
<A NAME="eq:strongly_coup"></A>
|
||||
<TABLE WIDTH="100%" ALIGN="CENTER">
|
||||
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:strongly_coup"></A><IMG
|
||||
WIDTH="387" HEIGHT="72" BORDER="0"
|
||||
@@ -156,59 +154,60 @@ strongly-coupled neighborood of <IMG
|
||||
ALT="\begin{displaymath}
|
||||
\Omega^k_j \subset \mathcal{N}_i^k(\theta) = ␍ \left\{ r ...
|
||||
...vert a_{ii}^ka_{rr}^k\vert} \right \} \cup \left\{ i \right\},␍\end{displaymath}"></TD>
|
||||
<TD WIDTH=10 ALIGN="RIGHT">
|
||||
(3)</TD></TR>
|
||||
<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT">
|
||||
(<SPAN CLASS="arabic">3</SPAN>)</TD></TR>
|
||||
</TABLE>
|
||||
<BR CLEAR="ALL"></DIV><P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<BR CLEAR="ALL"></DIV><P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
for a given threshold <!-- MATH
|
||||
$\theta \in [0,1]$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="69" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img32.png"
|
||||
ALT="$\theta \in [0,1]$"> (see [<A
|
||||
HREF="node30.html#VANEK_MANDEL_BREZINA">25</A>] for the details).
|
||||
ALT="$\theta \in [0,1]$"></SPAN> (see [<A
|
||||
HREF="node36.html#VANEK_MANDEL_BREZINA">25</A>] for the details).
|
||||
Since this algorithm has a sequential nature, a decoupled
|
||||
version of it is applied, where each processor independently executes
|
||||
the algorithm on the set of indices assigned to it in the initial data
|
||||
distribution. This version is embarrassingly parallel, since it does not require any data
|
||||
communication. On the other hand, it may produce some nonuniform aggregates
|
||||
and is strongly dependent on the number of processors and on the initial partitioning
|
||||
of the matrix <IMG
|
||||
of the matrix <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img3.png"
|
||||
ALT="$A$">. Nevertheless, this parallel algorithm has been chosen for
|
||||
ALT="$A$"></SPAN>. Nevertheless, this parallel algorithm has been chosen for
|
||||
MLD2P4, since it has been shown to produce good results in practice
|
||||
[<A
|
||||
HREF="node30.html#aaecc_07">5</A>,<A
|
||||
HREF="node30.html#apnum_07">7</A>,<A
|
||||
HREF="node30.html#TUMINARO_TONG">24</A>].
|
||||
</FONT></FONT></FONT>
|
||||
HREF="node36.html#aaecc_07">5</A>,<A
|
||||
HREF="node36.html#apnum_07">7</A>,<A
|
||||
HREF="node36.html#TUMINARO_TONG">24</A>].
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The prolongator <IMG
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The prolongator <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img25.png"
|
||||
ALT="$P^k$"> is built starting from a tentative prolongator
|
||||
ALT="$P^k$"></SPAN> is built starting from a tentative prolongator
|
||||
<!-- MATH
|
||||
$\bar{P}^k \in \mathbb{R}^{n_k \times n_{k+1}}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="117" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img33.png"
|
||||
ALT="$\bar{P}^k \in \mathbb{R}^{n_k \times n_{k+1}}$">, defined as
|
||||
</FONT></FONT></FONT>
|
||||
ALT="$\bar{P}^k \in \mathbb{R}^{n_k \times n_{k+1}}$"></SPAN>, defined as
|
||||
</BIG></BIG></BIG>
|
||||
<BR>
|
||||
<DIV ALIGN="RIGHT">
|
||||
<DIV ALIGN="RIGHT" CLASS="mathdisplay">
|
||||
|
||||
<!-- MATH
|
||||
\begin{equation}
|
||||
\bar{P}^k =(\bar{p}_{ij}^k), \quad \bar{p}_{ij}^k =
|
||||
\bar{P}^k =(\bar{p}_{ij}^k), \quad \bar{p}_{ij}^k =
|
||||
\left\{ \begin{array}{ll}
|
||||
1 & \quad \mbox{if} \; i \in \Omega^k_j, \\
|
||||
0 & \quad \mbox{otherwise},
|
||||
\end{array} \right.
|
||||
\end{equation}
|
||||
-->
|
||||
<A NAME="eq:tent_prol"></A>
|
||||
<TABLE WIDTH="100%" ALIGN="CENTER">
|
||||
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:tent_prol"></A><IMG
|
||||
WIDTH="287" HEIGHT="51" BORDER="0"
|
||||
@@ -216,41 +215,41 @@ MLD2P4, since it has been shown to produce good results in practice
|
||||
ALT="\begin{displaymath}␍\bar{P}^k =(\bar{p}_{ij}^k), \quad \bar{p}_{ij}^k = ␍\left\{...
|
||||
...ega^k_j, ␍0 & \quad \mbox{otherwise},␍\end{array} \right.
|
||||
\end{displaymath}"></TD>
|
||||
<TD WIDTH=10 ALIGN="RIGHT">
|
||||
(4)</TD></TR>
|
||||
<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT">
|
||||
(<SPAN CLASS="arabic">4</SPAN>)</TD></TR>
|
||||
</TABLE>
|
||||
<BR CLEAR="ALL"></DIV><P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
where <IMG
|
||||
<BR CLEAR="ALL"></DIV><P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
where <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$\Omega^k_j$"> is the aggregate of <IMG
|
||||
ALT="$\Omega^k_j$"></SPAN> is the aggregate of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img9.png"
|
||||
ALT="$\Omega^k$">
|
||||
ALT="$\Omega^k$"></SPAN>
|
||||
corresponding to the index <!-- MATH
|
||||
$j \in \Omega^{k+1}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="72" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img27.png"
|
||||
ALT="$j \in \Omega^{k+1}$">.
|
||||
<IMG
|
||||
ALT="$j \in \Omega^{k+1}$"></SPAN>.
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img25.png"
|
||||
ALT="$P^k$"> is obtained by applying to <IMG
|
||||
ALT="$P^k$"></SPAN> is obtained by applying to <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img35.png"
|
||||
ALT="$\bar{P}^k$"> a smoother
|
||||
ALT="$\bar{P}^k$"></SPAN> a smoother
|
||||
<!-- MATH
|
||||
$S^k \in \mathbb{R}^{n_k \times n_k}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="101" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img36.png"
|
||||
ALT="$S^k \in \mathbb{R}^{n_k \times n_k}$">:
|
||||
</FONT></FONT></FONT>
|
||||
ALT="$S^k \in \mathbb{R}^{n_k \times n_k}$"></SPAN>:
|
||||
</BIG></BIG></BIG>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
P^k = S^k \bar{P}^k,
|
||||
@@ -263,19 +262,19 @@ P^k = S^k \bar{P}^k,
|
||||
ALT="\begin{displaymath}␍P^k = S^k \bar{P}^k,␍\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
in order to remove nonsmooth components from the range of the prolongator,
|
||||
and hence to improve the convergence properties of the multilevel
|
||||
method [<A
|
||||
HREF="node30.html#BREZINA_VANEK">2</A>,<A
|
||||
HREF="node30.html#Stuben_01">23</A>].
|
||||
A simple choice for <IMG
|
||||
HREF="node36.html#BREZINA_VANEK">2</A>,<A
|
||||
HREF="node36.html#Stuben_01">23</A>].
|
||||
A simple choice for <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img38.png"
|
||||
ALT="$S^k$"> is the damped Jacobi smoother:
|
||||
</FONT></FONT></FONT>
|
||||
ALT="$S^k$"></SPAN> is the damped Jacobi smoother:
|
||||
</BIG></BIG></BIG>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
S^k = I - \omega^k (D^k)^{-1} A^k_F ,
|
||||
@@ -288,24 +287,24 @@ S^k = I - \omega^k (D^k)^{-1} A^k_F ,
|
||||
ALT="\begin{displaymath}␍S^k = I - \omega^k (D^k)^{-1} A^k_F , ␍\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
where <IMG
|
||||
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
where <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="28" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img40.png"
|
||||
ALT="$D^k$"> is the diagonal matrix with the same diagonal entries as <IMG
|
||||
ALT="$D^k$"></SPAN> is the diagonal matrix with the same diagonal entries as <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img41.png"
|
||||
ALT="$A^k$">,
|
||||
ALT="$A^k$"></SPAN>,
|
||||
<!-- MATH
|
||||
$A^k_F = (\bar{a}_{ij}^k)$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="87" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img42.png"
|
||||
ALT="$A^k_F = (\bar{a}_{ij}^k)$"> is the filtered matrix defined as
|
||||
</FONT></FONT></FONT>
|
||||
ALT="$A^k_F = (\bar{a}_{ij}^k)$"></SPAN> is the filtered matrix defined as
|
||||
</BIG></BIG></BIG>
|
||||
<BR>
|
||||
<DIV ALIGN="RIGHT">
|
||||
<DIV ALIGN="RIGHT" CLASS="mathdisplay">
|
||||
|
||||
<!-- MATH
|
||||
\begin{equation}
|
||||
@@ -319,6 +318,7 @@ where <IMG
|
||||
\bar{a}_{ii}^k = a_{ii}^k - \sum_{j \ne i} (a_{ij}^k - \bar{a}_{ij}^k),
|
||||
\end{equation}
|
||||
-->
|
||||
<A NAME="eq:filtered"></A>
|
||||
<TABLE WIDTH="100%" ALIGN="CENTER">
|
||||
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:filtered"></A><IMG
|
||||
WIDTH="514" HEIGHT="74" BORDER="0"
|
||||
@@ -326,75 +326,76 @@ where <IMG
|
||||
ALT="\begin{displaymath}
|
||||
\bar{a}_{ij}^k =␍ \left \{ \begin{array}{ll}␍ a_{ij}^k & ...
|
||||
...ii}^k = a_{ii}^k - \sum_{j \ne i} (a_{ij}^k - \bar{a}_{ij}^k),␍\end{displaymath}"></TD>
|
||||
<TD WIDTH=10 ALIGN="RIGHT">
|
||||
(5)</TD></TR>
|
||||
<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT">
|
||||
(<SPAN CLASS="arabic">5</SPAN>)</TD></TR>
|
||||
</TABLE>
|
||||
<BR CLEAR="ALL"></DIV><P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
and <IMG
|
||||
<BR CLEAR="ALL"></DIV><P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
and <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="24" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img44.png"
|
||||
ALT="$\omega^k$"> is an approximation of <IMG
|
||||
ALT="$\omega^k$"></SPAN> is an approximation of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="61" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img45.png"
|
||||
ALT="$4/(3\rho^k)$">, where
|
||||
<IMG
|
||||
ALT="$4/(3\rho^k)$"></SPAN>, where
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="22" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img46.png"
|
||||
ALT="$\rho^k$"> is the spectral radius of <!-- MATH
|
||||
ALT="$\rho^k$"></SPAN> is the spectral radius of <!-- MATH
|
||||
$(D^k)^{-1}A^k_F$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="83" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img47.png"
|
||||
ALT="$(D^k)^{-1}A^k_F$"> [<A
|
||||
HREF="node30.html#BREZINA_VANEK">2</A>].
|
||||
ALT="$(D^k)^{-1}A^k_F$"></SPAN> [<A
|
||||
HREF="node36.html#BREZINA_VANEK">2</A>].
|
||||
In MLD2P4 this approximation is obtained by using <!-- MATH
|
||||
$\| A^k_F \|_\infty$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="61" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img48.png"
|
||||
ALT="$\Vert A^k_F \Vert _\infty$"> as an estimate
|
||||
of <IMG
|
||||
ALT="$\Vert A^k_F \Vert _\infty$"></SPAN> as an estimate
|
||||
of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="22" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img46.png"
|
||||
ALT="$\rho^k$">. Note that for systems coming from uniformly elliptic
|
||||
problems, filtering the matrix <IMG
|
||||
ALT="$\rho^k$"></SPAN>. Note that for systems coming from uniformly elliptic
|
||||
problems, filtering the matrix <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img41.png"
|
||||
ALT="$A^k$"> has little or no effect, and
|
||||
<IMG
|
||||
ALT="$A^k$"></SPAN> has little or no effect, and
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img41.png"
|
||||
ALT="$A^k$"> can be used instead of <IMG
|
||||
ALT="$A^k$"></SPAN> can be used instead of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="29" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img49.png"
|
||||
ALT="$A^k_F$">. The latter choice is the default in MLD2P4.
|
||||
</FONT></FONT></FONT>
|
||||
ALT="$A^k_F$"></SPAN>. The latter choice is the default in MLD2P4.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html254"
|
||||
<A NAME="tex2html261"
|
||||
HREF="node15.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html250"
|
||||
<A NAME="tex2html257"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html244"
|
||||
<A NAME="tex2html251"
|
||||
HREF="node13.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html252"
|
||||
<A NAME="tex2html259"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html255"
|
||||
<B> Next:</B> <A NAME="tex2html262"
|
||||
HREF="node15.html">Smoothers and coarsest-level solvers</A>
|
||||
<B> Up:</B> <A NAME="tex2html251"
|
||||
<B> Up:</B> <A NAME="tex2html258"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<B> Previous:</B> <A NAME="tex2html245"
|
||||
<B> Previous:</B> <A NAME="tex2html252"
|
||||
HREF="node13.html">AMG preconditioners</A>
|
||||
<B> <A NAME="tex2html253"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html260"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+96
-98
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Smoothers and coarsest-level solvers</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -24,119 +20,120 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html264"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html271"
|
||||
HREF="node16.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html260"
|
||||
<A NAME="tex2html267"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html256"
|
||||
<A NAME="tex2html263"
|
||||
HREF="node14.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html262"
|
||||
<A NAME="tex2html269"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html265"
|
||||
<B> Next:</B> <A NAME="tex2html272"
|
||||
HREF="node16.html">Getting Started</A>
|
||||
<B> Up:</B> <A NAME="tex2html261"
|
||||
<B> Up:</B> <A NAME="tex2html268"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<B> Previous:</B> <A NAME="tex2html257"
|
||||
<B> Previous:</B> <A NAME="tex2html264"
|
||||
HREF="node14.html">Smoothed Aggregation</A>
|
||||
<B> <A NAME="tex2html263"
|
||||
<B> <A NAME="tex2html270"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00063000000000000000"></A><A NAME="sec:smoothers"></A>
|
||||
<BR>
|
||||
Smoothers and coarsest-level solvers
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The smoothers implemented in MLD2P4 include the Jacobi and block-Jacobi methods,
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The smoothers implemented in MLD2P4 include the Jacobi and block-Jacobi methods,
|
||||
a hybrid version of the forward and backward Gauss-Seidel methods, and the
|
||||
additive Schwarz (AS) ones (see, e.g., [<A
|
||||
HREF="node30.html#Saad_book">20</A>,<A
|
||||
HREF="node30.html#dd2_96">21</A>]).
|
||||
</FONT></FONT></FONT>
|
||||
HREF="node36.html#Saad_book">20</A>,<A
|
||||
HREF="node36.html#dd2_96">21</A>]).
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The hybrid Gauss-Seidel
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The hybrid Gauss-Seidel
|
||||
version is considered because the original Gauss-Seidel method is inherently sequential.
|
||||
At each iteration of the hybrid version, each parallel process uses the most recent values
|
||||
of its own local variables and the values of the non-local variables computed at the
|
||||
previous iteration, obtained by exchanging data with other processes before
|
||||
the beginning of the current iteration.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">In the AS methods, the index space <IMG
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">In the AS methods, the index space <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img9.png"
|
||||
ALT="$\Omega^k$"> is divided into <IMG
|
||||
ALT="$\Omega^k$"></SPAN> is divided into <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="28" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img50.png"
|
||||
ALT="$m_k$">
|
||||
subsets <IMG
|
||||
ALT="$m_k$"></SPAN>
|
||||
subsets <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img51.png"
|
||||
ALT="$\Omega^k_i$"> of size <IMG
|
||||
ALT="$\Omega^k_i$"></SPAN> of size <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img52.png"
|
||||
ALT="$n_{k,i}$">, possibly
|
||||
overlapping. For each <IMG
|
||||
ALT="$n_{k,i}$"></SPAN>, possibly
|
||||
overlapping. For each <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="11" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img30.png"
|
||||
ALT="$i$"> we consider the restriction
|
||||
ALT="$i$"></SPAN> we consider the restriction
|
||||
operator <!-- MATH
|
||||
$R_i^k \in \mathbb{R}^{n_{k,i} \times n_k}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="110" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img53.png"
|
||||
ALT="$R_i^k \in \mathbb{R}^{n_{k,i} \times n_k}$">
|
||||
that maps a vector <IMG
|
||||
ALT="$R_i^k \in \mathbb{R}^{n_{k,i} \times n_k}$"></SPAN>
|
||||
that maps a vector <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="23" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img54.png"
|
||||
ALT="$x^k$"> to the vector <IMG
|
||||
ALT="$x^k$"></SPAN> to the vector <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="22" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img55.png"
|
||||
ALT="$x_i^k$"> made of the components of <IMG
|
||||
ALT="$x_i^k$"></SPAN> made of the components of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="23" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img54.png"
|
||||
ALT="$x^k$">
|
||||
with indices in <IMG
|
||||
ALT="$x^k$"></SPAN>
|
||||
with indices in <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img51.png"
|
||||
ALT="$\Omega^k_i$">, and the prolongation operator
|
||||
ALT="$\Omega^k_i$"></SPAN>, and the prolongation operator
|
||||
<!-- MATH
|
||||
$P^k_i = (R_i^k)^T$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="95" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img56.png"
|
||||
ALT="$P^k_i = (R_i^k)^T$">. These operators are then used to build
|
||||
ALT="$P^k_i = (R_i^k)^T$"></SPAN>. These operators are then used to build
|
||||
<!-- MATH
|
||||
$A_i^k=R_i^kA^kP_i^k$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="113" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img57.png"
|
||||
ALT="$A_i^k=R_i^kA^kP_i^k$">, which is the restriction of <IMG
|
||||
ALT="$A_i^k=R_i^kA^kP_i^k$"></SPAN>, which is the restriction of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img41.png"
|
||||
ALT="$A^k$"> to the index
|
||||
space <IMG
|
||||
ALT="$A^k$"></SPAN> to the index
|
||||
space <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img51.png"
|
||||
ALT="$\Omega^k_i$">.
|
||||
The classical AS preconditioner <IMG
|
||||
ALT="$\Omega^k_i$"></SPAN>.
|
||||
The classical AS preconditioner <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="41" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img58.png"
|
||||
ALT="$M^k_{AS}$"> is defined as
|
||||
</FONT></FONT></FONT>
|
||||
ALT="$M^k_{AS}$"></SPAN> is defined as
|
||||
</BIG></BIG></BIG>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
( M^k_{AS} )^{-1} = \sum_{i=1}^{m_k} P_i^k (A_i^k)^{-1} R_i^{k},
|
||||
@@ -149,98 +146,98 @@ The classical AS preconditioner <IMG
|
||||
ALT="\begin{displaymath}␍ ( M^k_{AS} )^{-1} = \sum_{i=1}^{m_k} P_i^k (A_i^k)^{-1} R_i^{k},␍\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
where <IMG
|
||||
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
where <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img60.png"
|
||||
ALT="$A_i^k$"> is supposed to be nonsingular. We observe that an approximate
|
||||
inverse of <IMG
|
||||
ALT="$A_i^k$"></SPAN> is supposed to be nonsingular. We observe that an approximate
|
||||
inverse of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img60.png"
|
||||
ALT="$A_i^k$"> is usually considered instead of <IMG
|
||||
ALT="$A_i^k$"></SPAN> is usually considered instead of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="57" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img61.png"
|
||||
ALT="$(A_i^k)^{-1}$">.
|
||||
The setup of <IMG
|
||||
ALT="$(A_i^k)^{-1}$"></SPAN>.
|
||||
The setup of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="41" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img58.png"
|
||||
ALT="$M^k_{AS}$"> during the multilevel build phase
|
||||
ALT="$M^k_{AS}$"></SPAN> during the multilevel build phase
|
||||
involves
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<UL>
|
||||
<LI>the definition of the index subspaces <IMG
|
||||
<LI>the definition of the index subspaces <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img62.png"
|
||||
ALT="$\Omega_i^k$"> and of the corresponding
|
||||
operators <IMG
|
||||
ALT="$\Omega_i^k$"></SPAN> and of the corresponding
|
||||
operators <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img63.png"
|
||||
ALT="$R_i^k$"> (and <IMG
|
||||
ALT="$R_i^k$"></SPAN> (and <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img64.png"
|
||||
ALT="$P_i^k$">);
|
||||
ALT="$P_i^k$"></SPAN>);
|
||||
</LI>
|
||||
<LI>the computation of the submatrices <IMG
|
||||
<LI>the computation of the submatrices <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="26" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img60.png"
|
||||
ALT="$A_i^k$">;
|
||||
ALT="$A_i^k$"></SPAN>;
|
||||
</LI>
|
||||
<LI>the computation of their inverses (usually approximated
|
||||
through some form of incomplete factorization).
|
||||
</LI>
|
||||
</UL><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</UL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
The computation of <!-- MATH
|
||||
$z^k=M^k_{AS}w^k$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="102" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img65.png"
|
||||
ALT="$z^k=M^k_{AS}w^k$">, with <!-- MATH
|
||||
ALT="$z^k=M^k_{AS}w^k$"></SPAN>, with <!-- MATH
|
||||
$w^k \in \mathbb{R}^{n_k}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="76" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img66.png"
|
||||
ALT="$w^k \in \mathbb{R}^{n_k}$">, during the
|
||||
ALT="$w^k \in \mathbb{R}^{n_k}$"></SPAN>, during the
|
||||
multilevel application phase, requires
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<UL>
|
||||
<LI>the restriction of <IMG
|
||||
<LI>the restriction of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="19" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img67.png"
|
||||
ALT="$w^k$"> to the subspaces <!-- MATH
|
||||
ALT="$w^k$"></SPAN> to the subspaces <!-- MATH
|
||||
$\mathbb{R}^{n_{k,i}}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="41" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img68.png"
|
||||
ALT="$\mathbb{R}^{n_{k,i}}$">,
|
||||
ALT="$\mathbb{R}^{n_{k,i}}$"></SPAN>,
|
||||
i.e. <!-- MATH
|
||||
$w_i^k = R_i^{k} w^k$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="91" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img69.png"
|
||||
ALT="$w_i^k = R_i^{k} w^k$">;
|
||||
ALT="$w_i^k = R_i^{k} w^k$"></SPAN>;
|
||||
</LI>
|
||||
<LI>the computation of the vectors <!-- MATH
|
||||
$z_i^k=(A_i^k)^{-1} w_i^k$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="119" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img70.png"
|
||||
ALT="$z_i^k=(A_i^k)^{-1} w_i^k$">;
|
||||
ALT="$z_i^k=(A_i^k)^{-1} w_i^k$"></SPAN>;
|
||||
</LI>
|
||||
<LI>the prolongation and the sum of the previous vectors,
|
||||
i.e. <!-- MATH
|
||||
$z^k = \sum_{i=1}^{m_k} P_i^k z_i^k$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="127" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img71.png"
|
||||
ALT="$z^k = \sum_{i=1}^{m_k} P_i^k z_i^k$">.
|
||||
ALT="$z^k = \sum_{i=1}^{m_k} P_i^k z_i^k$"></SPAN>.
|
||||
</LI>
|
||||
</UL><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</UL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Variants of the classical AS method, which use modifications of the
|
||||
restriction and prolongation operators, are also implemented in MLD2P4.
|
||||
Among them, the Restricted AS (RAS) preconditioner usually
|
||||
@@ -248,41 +245,42 @@ outperforms the classical AS preconditioner in terms of convergence
|
||||
rate and of computation and communication time on parallel distributed-memory
|
||||
computers, and is therefore the most widely used among the AS
|
||||
preconditioners [<A
|
||||
HREF="node30.html#CAI_SARKIS">6</A>].
|
||||
</FONT></FONT></FONT>
|
||||
HREF="node36.html#CAI_SARKIS">6</A>].
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Direct solvers based on sparse LU factorizations, implemented in the
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Direct solvers based on sparse LU factorizations, implemented in the
|
||||
third-party libraries reported in Section <A HREF="node8.html#sec:third-party">3.2</A>, can be applied
|
||||
as coarsest-level solvers by MLD2P4. Native inexact solvers based on
|
||||
incomplete LU factorizations, as well as Jacobi, hybrid (forward) Gauss-Seidel,
|
||||
and block Jacobi preconditioners are also available. Direct solvers usually
|
||||
lead to more effective preconditioners in terms of algorithmic scalability;
|
||||
however, this does not guarantee parallel efficiency.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html264"
|
||||
<A NAME="tex2html271"
|
||||
HREF="node16.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html260"
|
||||
<A NAME="tex2html267"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html256"
|
||||
<A NAME="tex2html263"
|
||||
HREF="node14.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html262"
|
||||
<A NAME="tex2html269"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html265"
|
||||
<B> Next:</B> <A NAME="tex2html272"
|
||||
HREF="node16.html">Getting Started</A>
|
||||
<B> Up:</B> <A NAME="tex2html261"
|
||||
<B> Up:</B> <A NAME="tex2html268"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<B> Previous:</B> <A NAME="tex2html257"
|
||||
<B> Previous:</B> <A NAME="tex2html264"
|
||||
HREF="node14.html">Smoothed Aggregation</A>
|
||||
<B> <A NAME="tex2html263"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html270"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+58
-58
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Getting Started</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,54 +21,55 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html276"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html283"
|
||||
HREF="node17.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html272"
|
||||
<A NAME="tex2html279"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html266"
|
||||
<A NAME="tex2html273"
|
||||
HREF="node15.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html274"
|
||||
<A NAME="tex2html281"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html277"
|
||||
<B> Next:</B> <A NAME="tex2html284"
|
||||
HREF="node17.html">Examples</A>
|
||||
<B> Up:</B> <A NAME="tex2html273"
|
||||
<B> Up:</B> <A NAME="tex2html280"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html267"
|
||||
<B> Previous:</B> <A NAME="tex2html274"
|
||||
HREF="node15.html">Smoothers and coarsest-level solvers</A>
|
||||
<B> <A NAME="tex2html275"
|
||||
<B> <A NAME="tex2html282"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00070000000000000000"></A><A NAME="sec:started"></A>
|
||||
<BR>
|
||||
Getting Started
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">We describe the basics for building and applying MLD2P4 one-level and multilevel
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">We describe the basics for building and applying MLD2P4 one-level and multilevel
|
||||
(i.e., AMG) preconditioners with the Krylov solvers included in PSBLAS [<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>].
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>].
|
||||
The following steps are required:
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
|
||||
<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>
|
||||
<LI><SPAN CLASS="textit">Declare the preconditioner data structure</SPAN>. It is a derived data type,
|
||||
<code>mld_</code><SPAN CLASS="textit">x</SPAN><code>prec_</code> <code>type</code>, where <SPAN CLASS="textit">x</SPAN> 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
|
||||
<LI><SPAN CLASS="textit">Allocate and initialize the preconditioner data structure, according to
|
||||
a preconditioner type chosen by the user</SPAN>. This is performed by the routine
|
||||
<code>init</code>, which also sets defaults for each preconditioner
|
||||
type selected by the user. The preconditioner types and the defaults associated
|
||||
with them are given in Table <A HREF="#tab:precinit">1</A>, where the strings used by
|
||||
@@ -80,8 +77,8 @@ The following steps are required:
|
||||
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>set</code>.
|
||||
<LI><SPAN CLASS="textit">Modify the selected preconditioner type, by properly setting
|
||||
preconditioner parameters.</SPAN> This is performed by the routine <code>set</code>.
|
||||
This routine must be called only if the user wants to modify the default values
|
||||
of the parameters associated with the selected preconditioner type, to obtain a variant
|
||||
of that preconditioner. Examples of use of <code>set</code> are given in
|
||||
@@ -89,38 +86,38 @@ The following steps are required:
|
||||
preconditioner parameters and their allowed and default values is provided in
|
||||
Section <A HREF="node18.html#sec:userinterface">6</A>, Tables <A HREF="#tab:p_cycle">2</A>-<A HREF="#tab:p_smoother_1">8</A>.
|
||||
</LI>
|
||||
<LI><I>Build the preconditioner for a given matrix</I>. If the selected preconditioner
|
||||
<LI><SPAN CLASS="textit">Build the preconditioner for a given matrix</SPAN>. If the selected preconditioner
|
||||
is multilevel, then two steps must be performed, as specified next.
|
||||
<DL COMPACT>
|
||||
<DT>4.1</DT>
|
||||
<DD><I>Build the aggregation hierarchy for a given matrix.</I> This is
|
||||
<DD><SPAN CLASS="textit">Build the aggregation hierarchy for a given matrix.</SPAN> This is
|
||||
performed by the routine <code>hierarchy_build</code>.
|
||||
</DD>
|
||||
<DT>4.2</DT>
|
||||
<DD><I>Build the preconditioner for a given matrix.</I> This is performed
|
||||
<DD><SPAN CLASS="textit">Build the preconditioner for a given matrix.</SPAN> This is performed
|
||||
by the routine <code>smoothers_build</code>.
|
||||
</DD>
|
||||
</DL>
|
||||
If the selected preconditioner is one-level, it is built in a single step,
|
||||
performed by the routine <code>bld</code>.
|
||||
</LI>
|
||||
<LI><I>Apply the preconditioner at each iteration of a Krylov solver.</I>
|
||||
This is performed by the routine <code>aply</code>. When using the PSBLAS Krylov solvers,
|
||||
this step is completely transparent to the user, since <code>aply</code> is called
|
||||
<LI><SPAN CLASS="textit">Apply the preconditioner at each iteration of a Krylov solver.</SPAN>
|
||||
This is performed by the method <code>apply</code>. When using the PSBLAS Krylov solvers,
|
||||
this step is completely transparent to the user, since <code>apply</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
|
||||
<LI><SPAN CLASS="textit">Free the preconditioner data structure</SPAN>. This is performed by
|
||||
the routine <code>free</code>. This step is complementary to step 1 and should
|
||||
be performed when the preconditioner is no more used.
|
||||
</LI>
|
||||
</OL><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</OL><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">All the previous routines are available as methods of the preconditioner object.
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">All the previous routines are available as methods of the preconditioner object.
|
||||
A detailed description of them is given in Section <A HREF="node18.html#sec:userinterface">6</A>.
|
||||
Examples showing the basic use of MLD2P4 are reported in Section <A HREF="node17.html#sec:examples">5.1</A>.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="904"></A>
|
||||
<TABLE>
|
||||
@@ -135,8 +132,8 @@ Preconditioner types, corresponding strings and default choices.
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=232><SMALL>DEFAULT PRECONDITIONER</SMALL></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">No preconditioner</TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=51><code>'NOPREC'</code></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=232>Considered only to use the PSBLAS
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=51><code>'NONE'</code></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=232>Considered to use the PSBLAS
|
||||
Krylov solvers with no preconditioner.</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Diagonal</TD>
|
||||
@@ -177,60 +174,63 @@ Preconditioner types, corresponding strings and default choices.
|
||||
for further details of the preconditioner.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV><P></P>
|
||||
<BR><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BR><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Note that the module <code>mld_prec_mod</code>, containing the definition of the
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Note that the 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="node17.html#sec:examples">5.1</A>).
|
||||
<BR></FONT></FONT></FONT>
|
||||
<BR></BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Remark 1.</B> Coarsest-level solvers based on the LU factorization,
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><SPAN CLASS="textbf">Remark 1.</SPAN> Coarsest-level solvers based on the LU factorization,
|
||||
such as those implemented in UMFPACK, MUMPS, SuperLU, and SuperLU_Dist,
|
||||
usually lead to smaller numbers of preconditioned Krylov
|
||||
iterations than inexact solvers, when the linear system comes from
|
||||
a standard discretization of basic scalar elliptic PDE problems. However,
|
||||
this does not necessarily correspond to the smallest execution time
|
||||
on parallel computers. </FONT></FONT></FONT>
|
||||
on parallel computers.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html278"
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html285"
|
||||
HREF="node17.html">Examples</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html276"
|
||||
<A NAME="tex2html283"
|
||||
HREF="node17.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html272"
|
||||
<A NAME="tex2html279"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html266"
|
||||
<A NAME="tex2html273"
|
||||
HREF="node15.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html274"
|
||||
<A NAME="tex2html281"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html277"
|
||||
<B> Next:</B> <A NAME="tex2html284"
|
||||
HREF="node17.html">Examples</A>
|
||||
<B> Up:</B> <A NAME="tex2html273"
|
||||
<B> Up:</B> <A NAME="tex2html280"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html267"
|
||||
<B> Previous:</B> <A NAME="tex2html274"
|
||||
HREF="node15.html">Smoothers and coarsest-level solvers</A>
|
||||
<B> <A NAME="tex2html275"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html282"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+49
-50
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Examples</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -24,38 +20,39 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html287"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html294"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html283"
|
||||
<A NAME="tex2html290"
|
||||
HREF="node16.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html279"
|
||||
<A NAME="tex2html286"
|
||||
HREF="node16.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html285"
|
||||
<A NAME="tex2html292"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html288"
|
||||
<B> Next:</B> <A NAME="tex2html295"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Up:</B> <A NAME="tex2html284"
|
||||
<B> Up:</B> <A NAME="tex2html291"
|
||||
HREF="node16.html">Getting Started</A>
|
||||
<B> Previous:</B> <A NAME="tex2html280"
|
||||
<B> Previous:</B> <A NAME="tex2html287"
|
||||
HREF="node16.html">Getting Started</A>
|
||||
<B> <A NAME="tex2html286"
|
||||
<B> <A NAME="tex2html293"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00071000000000000000"></A><A NAME="sec:examples"></A>
|
||||
<BR>
|
||||
Examples
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The code reported in Figure <A HREF="#fig:ex1">2</A> shows how to set and apply the default
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The code reported in Figure <A HREF="#fig:ex1">2</A> shows how to set and apply the default
|
||||
multilevel 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 the second argument of <code>P%init</code>
|
||||
@@ -64,9 +61,9 @@ solver provided by PSBLAS (the matrix of the system to be solved is
|
||||
assumed to be positive definite). 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.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The part of the code concerning the
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">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
|
||||
@@ -77,17 +74,17 @@ Section <A HREF="node11.html#sec:ex_and_test">3.5</A>). A sample test probl
|
||||
input data is available in <code>examples/fileread/runs</code>.
|
||||
For details on the use of the PSBLAS routines, see the PSBLAS User's
|
||||
Guide [<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>].
|
||||
</FONT></FONT></FONT>
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>].
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The setup and application of the default multilevel preconditioner
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The setup and application of the default multilevel preconditioner
|
||||
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="node18.html#sec:userinterface">6</A> for details). If these versions are installed,
|
||||
the corresponding codes are available in <code>examples/fileread/</code>.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:ex1"></A><A NAME="907"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG>
|
||||
@@ -157,9 +154,9 @@ setup and application of the default multilevel preconditioner (example 1).
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Different versions of the multilevel preconditioner can be obtained by changing
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Different versions of the multilevel preconditioner can be obtained by changing
|
||||
the default values of the preconditioner parameters. The code reported in
|
||||
Figure <A HREF="#fig:ex2">3</A> shows how to set a V-cycle preconditioner
|
||||
which applies 1 block-Jacobi sweep as pre- and post-smoother,
|
||||
@@ -176,24 +173,25 @@ and solves the coarsest-level system with the multifrontal LU factorization
|
||||
implemented in MUMPS. It is specified that the coarsest-level
|
||||
matrix is distributed, since MUMPS can be used on both
|
||||
replicated and distributed matrices, and by default
|
||||
it is used on replicated ones. The code fragments shown in Figures <A HREF="#fig:ex2">3</A> and <A HREF="#fig:ex3">4</A> are
|
||||
it is used on replicated ones.
|
||||
The code fragments shown in Figures <A HREF="#fig:ex2">3</A> and <A HREF="#fig:ex3">4</A> are
|
||||
included in the example program file <code>mld_dexample_ml.f90</code> too.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Finally, Figure <A HREF="#fig:ex4">5</A> shows the setup of a one-level
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Finally, Figure <A HREF="#fig:ex4">5</A> shows the setup of a one-level
|
||||
additive Schwarz preconditioner, i.e., RAS with overlap 2.
|
||||
Note also that a Krylov method different from CG must be used to solve
|
||||
the preconditioned system, since the preconditione in nonsymmetric.
|
||||
The corresponding example program is available in the file
|
||||
<code>mld_dexample_1lev.f90</code>.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">For all the previous preconditioners, example programs where the sparse matrix and
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">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>.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:ex2"></A><A NAME="909"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
|
||||
@@ -224,9 +222,9 @@ setup of a multilevel preconditioner</CAPTION>
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:ex3"></A><A NAME="911"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
|
||||
@@ -257,9 +255,9 @@ setup of a multilevel preconditioner</CAPTION>
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:ex4"></A><A NAME="913"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
|
||||
@@ -285,31 +283,32 @@ setup of a one-level Schwarz preconditioner.</CAPTION>
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html287"
|
||||
<A NAME="tex2html294"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html283"
|
||||
<A NAME="tex2html290"
|
||||
HREF="node16.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html279"
|
||||
<A NAME="tex2html286"
|
||||
HREF="node16.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html285"
|
||||
<A NAME="tex2html292"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html288"
|
||||
<B> Next:</B> <A NAME="tex2html295"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Up:</B> <A NAME="tex2html284"
|
||||
<B> Up:</B> <A NAME="tex2html291"
|
||||
HREF="node16.html">Getting Started</A>
|
||||
<B> Previous:</B> <A NAME="tex2html280"
|
||||
<B> Previous:</B> <A NAME="tex2html287"
|
||||
HREF="node16.html">Getting Started</A>
|
||||
<B> <A NAME="tex2html286"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html293"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+88
-76
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>User Interface</TITLE>
|
||||
@@ -13,89 +9,91 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node27.html">
|
||||
<LINK REL="next" HREF="node33.html">
|
||||
<LINK REL="previous" HREF="node16.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node19.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html299"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html306"
|
||||
HREF="node19.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html295"
|
||||
<A NAME="tex2html302"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html289"
|
||||
<A NAME="tex2html296"
|
||||
HREF="node17.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html297"
|
||||
<A NAME="tex2html304"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html300"
|
||||
HREF="node19.html">Subroutine init</A>
|
||||
<B> Up:</B> <A NAME="tex2html296"
|
||||
<B> Next:</B> <A NAME="tex2html307"
|
||||
HREF="node19.html">Method init</A>
|
||||
<B> Up:</B> <A NAME="tex2html303"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html290"
|
||||
<B> Previous:</B> <A NAME="tex2html297"
|
||||
HREF="node17.html">Examples</A>
|
||||
<B> <A NAME="tex2html298"
|
||||
<B> <A NAME="tex2html305"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00080000000000000000"></A><A NAME="sec:userinterface"></A>
|
||||
<BR>
|
||||
User Interface
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The basic user interface of MLD2P4 consists of eight routines. The six
|
||||
routines <code>init</code>, <code>set</code>,
|
||||
<code>hierarchy_build</code>, <code>smoothers_build</code>,
|
||||
<code>bld</code>, and <code>apply</code> encapsulate all the
|
||||
functionalities for the setup and the application of any multilevel and one-level
|
||||
preconditioner implemented in the package.
|
||||
The routine <code>free</code> deallocates the preconditioner data structure, while
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The basic user interface of MLD2P4 consists of eight methods. The six
|
||||
methods <code>init</code>, <code>set</code>, <code>build</code>,
|
||||
<code>hierarchy_build</code>, <code>smoothers_build</code> and <code>apply</code>
|
||||
encapsulate all the functionalities for the setup and the application
|
||||
of any multilevel and one-level preconditioner implemented in the
|
||||
package.
|
||||
The method <code>free</code> deallocates the preconditioner data structure, while
|
||||
<code>descr</code> prints a description of the preconditioner setup by the user.
|
||||
</FONT></FONT></FONT>
|
||||
For backward compatibility, methods are also accessible as
|
||||
stand-alone subroutines.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">All the routines are available as methods of the preconditioner object.
|
||||
For each routine, the same user interface is overloaded with
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">For each method, the same user interface is overloaded with
|
||||
respect to the real/ complex case and the single/double precision;
|
||||
arguments with appropriate data types must be passed to the routine,
|
||||
arguments with appropriate data types must be passed to the method,
|
||||
i.e.,
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<UL>
|
||||
<LI>the sparse matrix data structure, containing the matrix to be
|
||||
preconditioned, must be of type <code>psb_</code><I>x</I><code>spmat_type</code>
|
||||
with <I>x</I> = <code>s</code> for real single precision, <I>x</I> = <code>d</code>
|
||||
for real double precision, <I>x</I> = <code>c</code> for complex single precision,
|
||||
<I>x</I> = <code>z</code> for complex double precision;
|
||||
preconditioned, must be of type <code>psb_</code><SPAN CLASS="textit">x</SPAN><code>spmat_type</code>
|
||||
with <SPAN CLASS="textit">x</SPAN> = <code>s</code> for real single precision, <SPAN CLASS="textit">x</SPAN> = <code>d</code>
|
||||
for real double precision, <SPAN CLASS="textit">x</SPAN> = <code>c</code> for complex single precision,
|
||||
<SPAN CLASS="textit">x</SPAN> = <code>z</code> for complex double precision;
|
||||
</LI>
|
||||
<LI>the preconditioner data structure must be of type
|
||||
<code>mld_</code><I>x</I><code>prec_type</code>, with <I>x</I> =
|
||||
<code>mld_</code><SPAN CLASS="textit">x</SPAN><code>prec_type</code>, with <SPAN CLASS="textit">x</SPAN> =
|
||||
<code>s</code>, <code>d</code>, <code>c</code>, <code>z</code>, according to the sparse
|
||||
matrix data structure;
|
||||
</LI>
|
||||
<LI>the arrays containing the vectors <IMG
|
||||
<LI>the arrays containing the vectors <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="14" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img72.png"
|
||||
ALT="$v$"> and <IMG
|
||||
ALT="$v$"></SPAN> and <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="17" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img73.png"
|
||||
ALT="$w$"> involved in
|
||||
the preconditioner application <IMG
|
||||
ALT="$w$"></SPAN> involved in
|
||||
the preconditioner application <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="82" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img23.png"
|
||||
ALT="$w=B^{-1}v$"> must be of type
|
||||
<code>psb_</code><I>x</I><code>vect_type</code> with <I>x</I> =
|
||||
ALT="$w=B^{-1}v$"></SPAN> must be of type
|
||||
<code>psb_</code><SPAN CLASS="textit">x</SPAN><code>vect_type</code> with <SPAN CLASS="textit">x</SPAN> =
|
||||
<code>s</code>, <code>d</code>, <code>c</code>, <code>z</code>, in a manner completely
|
||||
analogous to the sparse matrix type;
|
||||
</LI>
|
||||
@@ -103,59 +101,73 @@ i.e.,
|
||||
according to the precision of the sparse matrix and preconditioner
|
||||
data structures (see Section <A HREF="node20.html#sec:precset">6.2</A>).
|
||||
</LI>
|
||||
</UL><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
A description of each routine is given in the remainder of this section.
|
||||
</FONT></FONT></FONT>
|
||||
</UL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
A description of each method is given in the remainder of this section.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html301"
|
||||
HREF="node19.html">Subroutine init</A>
|
||||
<LI><A NAME="tex2html302"
|
||||
HREF="node20.html">Subroutine set</A>
|
||||
<LI><A NAME="tex2html303"
|
||||
HREF="node21.html">Subroutine build</A>
|
||||
<LI><A NAME="tex2html304"
|
||||
HREF="node22.html">Subroutine hierarchy_build</A>
|
||||
<LI><A NAME="tex2html305"
|
||||
HREF="node23.html">Subroutine smoothers_build</A>
|
||||
<LI><A NAME="tex2html306"
|
||||
HREF="node24.html">Subroutine apply</A>
|
||||
<LI><A NAME="tex2html307"
|
||||
HREF="node25.html">Subroutine free</A>
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html308"
|
||||
HREF="node26.html">Subroutine descr</A>
|
||||
</UL>
|
||||
HREF="node19.html">Method init</A>
|
||||
<LI><A NAME="tex2html309"
|
||||
HREF="node20.html">Method set</A>
|
||||
<LI><A NAME="tex2html310"
|
||||
HREF="node21.html">Method hierarchy_build</A>
|
||||
<LI><A NAME="tex2html311"
|
||||
HREF="node22.html">Method smoothers_build</A>
|
||||
<LI><A NAME="tex2html312"
|
||||
HREF="node23.html">Method build</A>
|
||||
<LI><A NAME="tex2html313"
|
||||
HREF="node24.html">Method apply</A>
|
||||
<LI><A NAME="tex2html314"
|
||||
HREF="node25.html">Method free</A>
|
||||
<LI><A NAME="tex2html315"
|
||||
HREF="node26.html">Method descr</A>
|
||||
<LI><A NAME="tex2html316"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html317"
|
||||
HREF="node28.html">Method: dump</A>
|
||||
<LI><A NAME="tex2html318"
|
||||
HREF="node29.html">Method: clone</A>
|
||||
<LI><A NAME="tex2html319"
|
||||
HREF="node30.html">Method: sizeof</A>
|
||||
<LI><A NAME="tex2html320"
|
||||
HREF="node31.html">Method: allocate_wrk</A>
|
||||
<LI><A NAME="tex2html321"
|
||||
HREF="node32.html">Method: free_wrk</A>
|
||||
</UL></UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html299"
|
||||
<A NAME="tex2html306"
|
||||
HREF="node19.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html295"
|
||||
<A NAME="tex2html302"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html289"
|
||||
<A NAME="tex2html296"
|
||||
HREF="node17.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html297"
|
||||
<A NAME="tex2html304"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html300"
|
||||
HREF="node19.html">Subroutine init</A>
|
||||
<B> Up:</B> <A NAME="tex2html296"
|
||||
<B> Next:</B> <A NAME="tex2html307"
|
||||
HREF="node19.html">Method init</A>
|
||||
<B> Up:</B> <A NAME="tex2html303"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html290"
|
||||
<B> Previous:</B> <A NAME="tex2html297"
|
||||
HREF="node17.html">Examples</A>
|
||||
<B> <A NAME="tex2html298"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html305"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+63
-64
@@ -1,19 +1,15 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Subroutine init</TITLE>
|
||||
<META NAME="description" CONTENT="Subroutine init">
|
||||
<TITLE>Method init</TITLE>
|
||||
<META NAME="description" CONTENT="Method init">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,106 +21,109 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html319"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html332"
|
||||
HREF="node20.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html315"
|
||||
<A NAME="tex2html328"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html309"
|
||||
<A NAME="tex2html322"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html317"
|
||||
<A NAME="tex2html330"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html320"
|
||||
HREF="node20.html">Subroutine set</A>
|
||||
<B> Up:</B> <A NAME="tex2html316"
|
||||
<B> Next:</B> <A NAME="tex2html333"
|
||||
HREF="node20.html">Method set</A>
|
||||
<B> Up:</B> <A NAME="tex2html329"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html310"
|
||||
<B> Previous:</B> <A NAME="tex2html323"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> <A NAME="tex2html318"
|
||||
<B> <A NAME="tex2html331"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00081000000000000000"></A><A NAME="sec:precinit"></A>
|
||||
<BR>
|
||||
Subroutine init
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
Method init
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call p%init(ptype,info)</code>
|
||||
</FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%init(ptype,info)</code>
|
||||
</BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
This routine allocates and initializes the preconditioner
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
This method allocates and initializes the preconditioner
|
||||
<code>p</code>, according to the preconditioner type chosen by the user.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Arguments</B></FONT> </FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>ptype</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>character(len=*), intent(in)</code>.</FONT></FONT></FONT></TD>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>ptype</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>character(len=*), intent(in)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The type of preconditioner. Its values are specified
|
||||
in Table <A HREF="#tab:precinit">1</A>.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The type of preconditioner. Its values are specified
|
||||
in Table <A HREF="#tab:precinit">1</A>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Note that the strings are case insensitive.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Note that the strings are case insensitive.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>info</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, intent(out)</code>.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Error code. If no error, 0 is returned. See Section <A HREF="node28.html#sec:errors">8</A> for details.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call mld_precinit(p,ptype,info)</code>
|
||||
</FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call mld_precinit(p,ptype,info)</code>
|
||||
</BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html319"
|
||||
<A NAME="tex2html332"
|
||||
HREF="node20.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html315"
|
||||
<A NAME="tex2html328"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html309"
|
||||
<A NAME="tex2html322"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html317"
|
||||
<A NAME="tex2html330"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html320"
|
||||
HREF="node20.html">Subroutine set</A>
|
||||
<B> Up:</B> <A NAME="tex2html316"
|
||||
<B> Next:</B> <A NAME="tex2html333"
|
||||
HREF="node20.html">Method set</A>
|
||||
<B> Up:</B> <A NAME="tex2html329"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html310"
|
||||
<B> Previous:</B> <A NAME="tex2html323"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> <A NAME="tex2html318"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html331"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+56
-57
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Contents</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,25 +21,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html78"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html84"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html76"
|
||||
<A NAME="tex2html82"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html70"
|
||||
<A NAME="tex2html76"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html79"
|
||||
<B> Next:</B> <A NAME="tex2html85"
|
||||
HREF="node3.html">General Overview</A>
|
||||
<B> Up:</B> <A NAME="tex2html77"
|
||||
<B> Up:</B> <A NAME="tex2html83"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html71"
|
||||
<B> Previous:</B> <A NAME="tex2html77"
|
||||
HREF="node1.html">Abstract</A>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
<BR>
|
||||
|
||||
@@ -52,82 +49,84 @@ Contents</A>
|
||||
</H2>
|
||||
<!--Table of Contents-->
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html80"
|
||||
<UL CLASS="TofC">
|
||||
<LI><A NAME="tex2html86"
|
||||
HREF="node3.html">General Overview</A>
|
||||
<LI><A NAME="tex2html81"
|
||||
<LI><A NAME="tex2html87"
|
||||
HREF="node4.html">Code Distribution</A>
|
||||
<LI><A NAME="tex2html82"
|
||||
<LI><A NAME="tex2html88"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html83"
|
||||
<LI><A NAME="tex2html89"
|
||||
HREF="node7.html">Prerequisites</A>
|
||||
<LI><A NAME="tex2html84"
|
||||
<LI><A NAME="tex2html90"
|
||||
HREF="node8.html">Optional third party libraries</A>
|
||||
<LI><A NAME="tex2html85"
|
||||
<LI><A NAME="tex2html91"
|
||||
HREF="node9.html">Configuration options</A>
|
||||
<LI><A NAME="tex2html86"
|
||||
<LI><A NAME="tex2html92"
|
||||
HREF="node10.html">Bug reporting</A>
|
||||
<LI><A NAME="tex2html87"
|
||||
<LI><A NAME="tex2html93"
|
||||
HREF="node11.html">Example and test programs</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html88"
|
||||
<LI><A NAME="tex2html94"
|
||||
HREF="node12.html">Multigrid Background</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html89"
|
||||
<LI><A NAME="tex2html95"
|
||||
HREF="node13.html">AMG preconditioners</A>
|
||||
<LI><A NAME="tex2html90"
|
||||
<LI><A NAME="tex2html96"
|
||||
HREF="node14.html">Smoothed Aggregation</A>
|
||||
<LI><A NAME="tex2html91"
|
||||
<LI><A NAME="tex2html97"
|
||||
HREF="node15.html">Smoothers and coarsest-level solvers</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html92"
|
||||
<LI><A NAME="tex2html98"
|
||||
HREF="node16.html">Getting Started</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html93"
|
||||
<LI><A NAME="tex2html99"
|
||||
HREF="node17.html">Examples</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html94"
|
||||
<LI><A NAME="tex2html100"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html95"
|
||||
HREF="node19.html">Subroutine init</A>
|
||||
<LI><A NAME="tex2html96"
|
||||
HREF="node20.html">Subroutine set</A>
|
||||
<LI><A NAME="tex2html97"
|
||||
HREF="node21.html">Subroutine build</A>
|
||||
<LI><A NAME="tex2html98"
|
||||
HREF="node22.html">Subroutine hierarchy_build</A>
|
||||
<LI><A NAME="tex2html99"
|
||||
HREF="node23.html">Subroutine smoothers_build</A>
|
||||
<LI><A NAME="tex2html100"
|
||||
HREF="node24.html">Subroutine apply</A>
|
||||
<LI><A NAME="tex2html101"
|
||||
HREF="node25.html">Subroutine free</A>
|
||||
HREF="node19.html">Method init</A>
|
||||
<LI><A NAME="tex2html102"
|
||||
HREF="node26.html">Subroutine descr</A>
|
||||
HREF="node20.html">Method set</A>
|
||||
<LI><A NAME="tex2html103"
|
||||
HREF="node21.html">Method hierarchy_build</A>
|
||||
<LI><A NAME="tex2html104"
|
||||
HREF="node22.html">Method smoothers_build</A>
|
||||
<LI><A NAME="tex2html105"
|
||||
HREF="node23.html">Method build</A>
|
||||
<LI><A NAME="tex2html106"
|
||||
HREF="node24.html">Method apply</A>
|
||||
<LI><A NAME="tex2html107"
|
||||
HREF="node25.html">Method free</A>
|
||||
<LI><A NAME="tex2html108"
|
||||
HREF="node26.html">Method descr</A>
|
||||
<LI><A NAME="tex2html109"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html103"
|
||||
HREF="node27.html">Adding new smoother and solver objects to MLD2P4</A>
|
||||
<LI><A NAME="tex2html104"
|
||||
HREF="node28.html">Error Handling</A>
|
||||
<LI><A NAME="tex2html105"
|
||||
HREF="node29.html">License</A>
|
||||
<LI><A NAME="tex2html106"
|
||||
HREF="node30.html">Bibliography</A>
|
||||
<LI><A NAME="tex2html110"
|
||||
HREF="node33.html">Adding new smoother and solver objects to MLD2P4</A>
|
||||
<LI><A NAME="tex2html111"
|
||||
HREF="node34.html">Error Handling</A>
|
||||
<LI><A NAME="tex2html112"
|
||||
HREF="node35.html">License</A>
|
||||
<LI><A NAME="tex2html113"
|
||||
HREF="node36.html">Bibliography</A>
|
||||
</UL>
|
||||
<!--End of Table of Contents-->
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+320
-311
File diff suppressed because it is too large
Load Diff
+70
-82
@@ -1,19 +1,15 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Subroutine build</TITLE>
|
||||
<META NAME="description" CONTENT="Subroutine build">
|
||||
<TITLE>Method hierarchy_build</TITLE>
|
||||
<META NAME="description" CONTENT="Method hierarchy_build">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,120 +21,112 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html343"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html356"
|
||||
HREF="node22.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html339"
|
||||
<A NAME="tex2html352"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html333"
|
||||
<A NAME="tex2html346"
|
||||
HREF="node20.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html341"
|
||||
<A NAME="tex2html354"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html344"
|
||||
HREF="node22.html">Subroutine hierarchy_build</A>
|
||||
<B> Up:</B> <A NAME="tex2html340"
|
||||
<B> Next:</B> <A NAME="tex2html357"
|
||||
HREF="node22.html">Method smoothers_build</A>
|
||||
<B> Up:</B> <A NAME="tex2html353"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html334"
|
||||
HREF="node20.html">Subroutine set</A>
|
||||
<B> <A NAME="tex2html342"
|
||||
<B> Previous:</B> <A NAME="tex2html347"
|
||||
HREF="node20.html">Method set</A>
|
||||
<B> <A NAME="tex2html355"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00083000000000000000"></A><A NAME="sec:precbld"></A>
|
||||
<H2><A NAME="SECTION00083000000000000000"></A><A NAME="sec:hier_bld"></A>
|
||||
<BR>
|
||||
Subroutine build
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
Method hierarchy_build
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call p%build(a,desc_a,info)</code>
|
||||
<BR></FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%hierarchy_build(a,desc_a,info)</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
This routine builds the one-level preconditioner <code>p</code> according to the requirements
|
||||
made by the user through the routines <code>init</code> and <code>set</code>
|
||||
(see Sections <A HREF="node22.html#sec:hier_bld">6.4</A> and <A HREF="node23.html#sec:smooth_bld">6.5</A> for multilevel preconditioners).
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
This method builds the hierarchy of matrices and restriction/prolongation
|
||||
operators for the multilevel preconditioner <code>p</code>, according to the requirements
|
||||
made by the user through the methods <code>init</code> and <code>set</code>.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Arguments</B></FONT> </FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>a</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>type(psb_</code><I>x</I><code>spmat_type), intent(in)</code>. </FONT></FONT></FONT></TD>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>a</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(psb_</code><SPAN CLASS="textit">x</SPAN><code>spmat_type), intent(in)</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The sparse matrix structure containing the local part of the
|
||||
matrix to be preconditioned. Note that <I>x</I> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The sparse matrix structure containing the local part of the
|
||||
matrix to be preconditioned. Note that <SPAN CLASS="textit">x</SPAN> must be chosen according
|
||||
to the real/complex,
|
||||
single/double precision version of MLD2P4 under use.
|
||||
See the PSBLAS User's Guide for details [<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>].</FONT></FONT></FONT></TD>
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>].</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>desc_a</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>type(psb_desc_type), intent(in)</code>. </FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>desc_a</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(psb_desc_type), intent(in)</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The communication descriptor of <code>a</code>. See the PSBLAS User's Guide for
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The communication descriptor of <code>a</code>. See the PSBLAS User's Guide for
|
||||
details [<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>].</FONT></FONT></FONT></TD>
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>].</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>info</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, intent(out)</code>.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Error code. If no error, 0 is returned. See Section <A HREF="node28.html#sec:errors">8</A> for details.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
as follows:
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call mld_precbld(p,what,val,info)</code>
|
||||
</FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
In this case, the routine can be used to build multilevel preconditioners too.
|
||||
</FONT></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html343"
|
||||
<A NAME="tex2html356"
|
||||
HREF="node22.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html339"
|
||||
<A NAME="tex2html352"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html333"
|
||||
<A NAME="tex2html346"
|
||||
HREF="node20.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html341"
|
||||
<A NAME="tex2html354"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html344"
|
||||
HREF="node22.html">Subroutine hierarchy_build</A>
|
||||
<B> Up:</B> <A NAME="tex2html340"
|
||||
<B> Next:</B> <A NAME="tex2html357"
|
||||
HREF="node22.html">Method smoothers_build</A>
|
||||
<B> Up:</B> <A NAME="tex2html353"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html334"
|
||||
HREF="node20.html">Subroutine set</A>
|
||||
<B> <A NAME="tex2html342"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> Previous:</B> <A NAME="tex2html347"
|
||||
HREF="node20.html">Method set</A>
|
||||
<B> <A NAME="tex2html355"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+101
-71
@@ -1,19 +1,15 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Subroutine hierarchy_build</TITLE>
|
||||
<META NAME="description" CONTENT="Subroutine hierarchy_build">
|
||||
<TITLE>Method smoothers_build</TITLE>
|
||||
<META NAME="description" CONTENT="Method smoothers_build">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,109 +21,143 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html355"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html368"
|
||||
HREF="node23.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html351"
|
||||
<A NAME="tex2html364"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html345"
|
||||
<A NAME="tex2html358"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html353"
|
||||
<A NAME="tex2html366"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html356"
|
||||
HREF="node23.html">Subroutine smoothers_build</A>
|
||||
<B> Up:</B> <A NAME="tex2html352"
|
||||
<B> Next:</B> <A NAME="tex2html369"
|
||||
HREF="node23.html">Method build</A>
|
||||
<B> Up:</B> <A NAME="tex2html365"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html346"
|
||||
HREF="node21.html">Subroutine build</A>
|
||||
<B> <A NAME="tex2html354"
|
||||
<B> Previous:</B> <A NAME="tex2html359"
|
||||
HREF="node21.html">Method hierarchy_build</A>
|
||||
<B> <A NAME="tex2html367"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00084000000000000000"></A><A NAME="sec:hier_bld"></A>
|
||||
<H2><A NAME="SECTION00084000000000000000"></A><A NAME="sec:smooth_bld"></A>
|
||||
<BR>
|
||||
Subroutine hierarchy_build
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
Method smoothers_build
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call p%hierarchy_build(a,desc_a,info)</code>
|
||||
<BR></FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%smoothers_build(a,desc_a,p,info[,amold,vmold,imold])</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
This routine builds the hierarchy of matrices and restriction/prolongation
|
||||
operators for the multilevel preconditioner <code>p</code>, according to the requirements
|
||||
made by the user through the routines <code>init</code> and <code>set</code>.
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
This method builds the smoothers and the coarsest-level solvers for the
|
||||
multilevel preconditioner <code>p</code>, according to the requirements made by
|
||||
the user through the methods <code>init</code> and <code>set</code>, and based on the aggregation
|
||||
hierarchy produced by a previous call to <code>hierarchy_build</code>
|
||||
(see Section <A HREF="node21.html#sec:hier_bld">6.3</A>).
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Arguments</B></FONT> </FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>a</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>type(psb_</code><I>x</I><code>spmat_type), intent(in)</code>. </FONT></FONT></FONT></TD>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>a</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(psb_</code><SPAN CLASS="textit">x</SPAN><code>spmat_type), intent(in)</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The sparse matrix structure containing the local part of the
|
||||
matrix to be preconditioned. Note that <I>x</I> must be chosen according
|
||||
to the real/complex,
|
||||
single/double precision version of MLD2P4 under use.
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The sparse matrix structure containing the local part of the
|
||||
matrix to be preconditioned. Note that <SPAN CLASS="textit">x</SPAN> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.
|
||||
See the PSBLAS User's Guide for details [<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>].</FONT></FONT></FONT></TD>
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>].</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>desc_a</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>type(psb_desc_type), intent(in)</code>. </FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>desc_a</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(psb_desc_type), intent(in)</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The communication descriptor of <code>a</code>. See the PSBLAS User's Guide for
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The communication descriptor of <code>a</code>. See the PSBLAS User's Guide for
|
||||
details [<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>].</FONT></FONT></FONT></TD>
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>].</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>info</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, intent(out)</code>.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Error code. If no error, 0 is returned. See Section <A HREF="node28.html#sec:errors">8</A> for details.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>amold</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_</code><SPAN CLASS="textit">x</SPAN><code>_base_sparse_mat), intent(in), optional</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal matrix
|
||||
components; this allows e.g. running on GPUs; it needs not be the
|
||||
same on all processes. See the PSBLAS User's Guide for
|
||||
details [<A
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>]. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>vmold</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_</code><SPAN CLASS="textit">x</SPAN><code>_base_vect_type), intent(in), optional</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal vector
|
||||
components; this allows e.g. running on GPUs. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>imold</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_i_base_vect_type), intent(in), optional</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal integer vector
|
||||
components; this allows e.g. running on GPUs. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html355"
|
||||
<A NAME="tex2html368"
|
||||
HREF="node23.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html351"
|
||||
<A NAME="tex2html364"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html345"
|
||||
<A NAME="tex2html358"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html353"
|
||||
<A NAME="tex2html366"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html356"
|
||||
HREF="node23.html">Subroutine smoothers_build</A>
|
||||
<B> Up:</B> <A NAME="tex2html352"
|
||||
<B> Next:</B> <A NAME="tex2html369"
|
||||
HREF="node23.html">Method build</A>
|
||||
<B> Up:</B> <A NAME="tex2html365"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html346"
|
||||
HREF="node21.html">Subroutine build</A>
|
||||
<B> <A NAME="tex2html354"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> Previous:</B> <A NAME="tex2html359"
|
||||
HREF="node21.html">Method hierarchy_build</A>
|
||||
<B> <A NAME="tex2html367"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+114
-70
@@ -1,19 +1,15 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Subroutine smoothers_build</TITLE>
|
||||
<META NAME="description" CONTENT="Subroutine smoothers_build">
|
||||
<TITLE>Method build</TITLE>
|
||||
<META NAME="description" CONTENT="Method build">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,108 +21,156 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html367"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html380"
|
||||
HREF="node24.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html363"
|
||||
<A NAME="tex2html376"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html357"
|
||||
<A NAME="tex2html370"
|
||||
HREF="node22.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html365"
|
||||
<A NAME="tex2html378"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html368"
|
||||
HREF="node24.html">Subroutine apply</A>
|
||||
<B> Up:</B> <A NAME="tex2html364"
|
||||
<B> Next:</B> <A NAME="tex2html381"
|
||||
HREF="node24.html">Method apply</A>
|
||||
<B> Up:</B> <A NAME="tex2html377"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html358"
|
||||
HREF="node22.html">Subroutine hierarchy_build</A>
|
||||
<B> <A NAME="tex2html366"
|
||||
<B> Previous:</B> <A NAME="tex2html371"
|
||||
HREF="node22.html">Method smoothers_build</A>
|
||||
<B> <A NAME="tex2html379"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00085000000000000000"></A><A NAME="sec:smooth_bld"></A>
|
||||
<H2><A NAME="SECTION00085000000000000000"></A><A NAME="sec:precbld"></A>
|
||||
<BR>
|
||||
Subroutine smoothers_build
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
Method build
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call p%smoothers_build(a,desc_a,p,info)</code>
|
||||
<BR></FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%build(a,desc_a,info[,amold,vmold,imold])</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
This routine builds the smoothers and the coarsest-level solvers for the
|
||||
multilevel preconditioner <code>p</code>, according to the requirements made by
|
||||
the user through the routines <code>init</code> and <code>set</code>, and based on the aggregation
|
||||
hierarchy produced by a previous call to <code>hierarchy_build</code>
|
||||
(see Section <A HREF="node22.html#sec:hier_bld">6.4</A>).
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
This method builds the preconditioner <code>p</code> according to the requirements
|
||||
made by the user through the methods <code>init</code> and <code>set</code>
|
||||
(see Sections <A HREF="node21.html#sec:hier_bld">6.3</A> and <A HREF="node22.html#sec:smooth_bld">6.4</A> for
|
||||
multilevel preconditioners). It is mostly provided for backward
|
||||
compatibility; indeed, it is internally implemented by invoking the
|
||||
two previous methods <code>hierarchy_build</code> and
|
||||
<code>smoothers_build</code>, whose nomenclature would however be somewhat
|
||||
unnatural when dealing with simple one-level preconditioners.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Arguments</B></FONT> </FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>a</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>type(psb_</code><I>x</I><code>spmat_type), intent(in)</code>. </FONT></FONT></FONT></TD>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>a</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(psb_</code><SPAN CLASS="textit">x</SPAN><code>spmat_type), intent(in)</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The sparse matrix structure containing the local part of the
|
||||
matrix to be preconditioned. Note that <I>x</I> must be chosen according
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The sparse matrix structure containing the local part of the
|
||||
matrix to be preconditioned. Note that <SPAN CLASS="textit">x</SPAN> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.
|
||||
See the PSBLAS User's Guide for details [<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>].</FONT></FONT></FONT></TD>
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>].</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>desc_a</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>type(psb_desc_type), intent(in)</code>. </FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>desc_a</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(psb_desc_type), intent(in)</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The communication descriptor of <code>a</code>. See the PSBLAS User's Guide for
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The communication descriptor of <code>a</code>. See the PSBLAS User's Guide for
|
||||
details [<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>].</FONT></FONT></FONT></TD>
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>].</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>info</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, intent(out)</code>.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Error code. If no error, 0 is returned. See Section <A HREF="node28.html#sec:errors">8</A> for details.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>amold</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_</code><SPAN CLASS="textit">x</SPAN><code>_base_sparse_mat), intent(in), optional</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal matrix
|
||||
components; this allows e.g. running on GPUs; it needs not be the
|
||||
same on all processes. See the PSBLAS User's Guide for
|
||||
details [<A
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>]. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>vmold</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_</code><SPAN CLASS="textit">x</SPAN><code>_base_vect_type), intent(in), optional</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal vector
|
||||
components; this allows e.g. running on GPUs. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>imold</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_i_base_vect_type), intent(in), optional</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal integer vector
|
||||
components; this allows e.g. running on GPUs. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call mld_precbld(p,what,val,info[,amold,vmold,imold])</code>
|
||||
</BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
The method can be used to build multilevel preconditioners too.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html367"
|
||||
<A NAME="tex2html380"
|
||||
HREF="node24.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html363"
|
||||
<A NAME="tex2html376"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html357"
|
||||
<A NAME="tex2html370"
|
||||
HREF="node22.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html365"
|
||||
<A NAME="tex2html378"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html368"
|
||||
HREF="node24.html">Subroutine apply</A>
|
||||
<B> Up:</B> <A NAME="tex2html364"
|
||||
<B> Next:</B> <A NAME="tex2html381"
|
||||
HREF="node24.html">Method apply</A>
|
||||
<B> Up:</B> <A NAME="tex2html377"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html358"
|
||||
HREF="node22.html">Subroutine hierarchy_build</A>
|
||||
<B> <A NAME="tex2html366"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> Previous:</B> <A NAME="tex2html371"
|
||||
HREF="node22.html">Method smoothers_build</A>
|
||||
<B> <A NAME="tex2html379"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+110
-111
@@ -1,19 +1,15 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Subroutine apply</TITLE>
|
||||
<META NAME="description" CONTENT="Subroutine apply">
|
||||
<TITLE>Method apply</TITLE>
|
||||
<META NAME="description" CONTENT="Method apply">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,191 +21,194 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html379"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html392"
|
||||
HREF="node25.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html375"
|
||||
<A NAME="tex2html388"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html369"
|
||||
<A NAME="tex2html382"
|
||||
HREF="node23.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html377"
|
||||
<A NAME="tex2html390"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html380"
|
||||
HREF="node25.html">Subroutine free</A>
|
||||
<B> Up:</B> <A NAME="tex2html376"
|
||||
<B> Next:</B> <A NAME="tex2html393"
|
||||
HREF="node25.html">Method free</A>
|
||||
<B> Up:</B> <A NAME="tex2html389"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html370"
|
||||
HREF="node23.html">Subroutine smoothers_build</A>
|
||||
<B> <A NAME="tex2html378"
|
||||
<B> Previous:</B> <A NAME="tex2html383"
|
||||
HREF="node23.html">Method build</A>
|
||||
<B> <A NAME="tex2html391"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00086000000000000000"></A><A NAME="sec:precapply"></A>
|
||||
<BR>
|
||||
Subroutine apply
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
Method apply
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call p%apply(x,y,desc_a,info [,trans,work])</code>
|
||||
<BR></FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%apply(x,y,desc_a,info [,trans,work])</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
This routine computes <!-- MATH
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
This method computes <!-- MATH
|
||||
$y = op(B^{-1})\, x$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="112" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img86.png"
|
||||
ALT="$y = op(B^{-1}) x$">, where <IMG
|
||||
ALT="$y = op(B^{-1}) x$"></SPAN>, where <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="19" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img24.png"
|
||||
ALT="$B$"> is a previously built
|
||||
preconditioner, stored into <code>p</code>, and <IMG
|
||||
ALT="$B$"></SPAN> is a previously built
|
||||
preconditioner, stored into <code>p</code>, and <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="21" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img87.png"
|
||||
ALT="$op$">
|
||||
ALT="$op$"></SPAN>
|
||||
denotes the preconditioner itself or its transpose, according to
|
||||
the value of <code>trans</code>.
|
||||
Note that, when MLD2P4 is used with a Krylov solver from PSBLAS,
|
||||
<code>p%apply</code> is called within the PSBLAS routine <code>psb_krylov</code>
|
||||
<code>p%apply</code> is called within the PSBLAS method <code>psb_krylov</code>
|
||||
and hence it is completely transparent to the user.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Arguments</B></FONT> </FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>x</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <I>type</I><code>(</code><I>kind_parameter</I><code>), dimension(:), intent(in)</code>.</FONT></FONT></FONT></TD>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>x</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <SPAN CLASS="textit">type</SPAN><code>(</code><SPAN CLASS="textit">kind_parameter</SPAN><code>), dimension(:), intent(in)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The local part of the vector <IMG
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The local part of the vector <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="15" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img88.png"
|
||||
ALT="$x$">. Note that <I>type</I> and
|
||||
<I>kind_parameter</I> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.</FONT></FONT></FONT></TD>
|
||||
ALT="$x$"></SPAN>. Note that <SPAN CLASS="textit">type</SPAN> and
|
||||
<SPAN CLASS="textit">kind_parameter</SPAN> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>y</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <I>type</I><code>(</code><I>kind_parameter</I><code>), dimension(:), intent(out)</code>.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>y</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <SPAN CLASS="textit">type</SPAN><code>(</code><SPAN CLASS="textit">kind_parameter</SPAN><code>), dimension(:), intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The local part of the vector <IMG
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The local part of the vector <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img89.png"
|
||||
ALT="$y$">. Note that <I>type</I> and
|
||||
<I>kind_parameter</I> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.</FONT></FONT></FONT></TD>
|
||||
ALT="$y$"></SPAN>. Note that <SPAN CLASS="textit">type</SPAN> and
|
||||
<SPAN CLASS="textit">kind_parameter</SPAN> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>desc_a</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>type(psb_desc_type), intent(in)</code>. </FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>desc_a</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(psb_desc_type), intent(in)</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The communication descriptor associated to the matrix to be
|
||||
preconditioned.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The communication descriptor associated to the matrix to be
|
||||
preconditioned.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>info</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, intent(out)</code>.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Error code. If no error, 0 is returned. See Section <A HREF="node28.html#sec:errors">8</A> for details.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>trans</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>character(len=1), optional, intent(in).</code></FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>trans</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>character(len=1), optional, intent(in).</code></BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> If <code>trans</code> = <code>'N','n'</code> then <!-- MATH
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> If <code>trans</code> = <code>'N','n'</code> then <!-- MATH
|
||||
$op(B^{-1}) = B^{-1}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="123" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img90.png"
|
||||
ALT="$op(B^{-1}) = B^{-1}$">;
|
||||
ALT="$op(B^{-1}) = B^{-1}$"></SPAN>;
|
||||
if <code>trans</code> = <code>'T','t'</code> then <!-- MATH
|
||||
$op(B^{-1}) = B^{-T}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="126" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img91.png"
|
||||
ALT="$op(B^{-1}) = B^{-T}$">
|
||||
(transpose of <IMG
|
||||
ALT="$op(B^{-1}) = B^{-T}$"></SPAN>
|
||||
(transpose of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="44" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img92.png"
|
||||
ALT="$B^{-1})$">; if <code>trans</code> = <code>'C','c'</code> then <!-- MATH
|
||||
ALT="$B^{-1})$"></SPAN>; if <code>trans</code> = <code>'C','c'</code> then <!-- MATH
|
||||
$op(B^{-1}) = B^{-C}$
|
||||
-->
|
||||
<IMG
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="126" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img93.png"
|
||||
ALT="$op(B^{-1}) = B^{-C}$">
|
||||
(conjugate transpose of <IMG
|
||||
ALT="$op(B^{-1}) = B^{-C}$"></SPAN>
|
||||
(conjugate transpose of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="44" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img92.png"
|
||||
ALT="$B^{-1})$">.</FONT></FONT></FONT></TD>
|
||||
ALT="$B^{-1})$"></SPAN>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>work</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <I>type</I><code>(</code><I>kind_parameter</I><code>), dimension(:), optional, target</code>.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>work</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <SPAN CLASS="textit">type</SPAN><code>(</code><SPAN CLASS="textit">kind_parameter</SPAN><code>), dimension(:), optional, target</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Workspace. Its size should be at
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Workspace. Its size should be at
|
||||
least <code>4 * psb_cd_get_local_</code> <code>cols(desc_a)</code> (see the PSBLAS User's Guide).
|
||||
Note that <I>type</I> and <I>kind_parameter</I> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.</FONT></FONT></FONT></TD>
|
||||
Note that <SPAN CLASS="textit">type</SPAN> and <SPAN CLASS="textit">kind_parameter</SPAN> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call mld_precaply(p,what,val,info)</code>
|
||||
</FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call mld_precaply(p,what,val,info)</code>
|
||||
</BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html379"
|
||||
<A NAME="tex2html392"
|
||||
HREF="node25.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html375"
|
||||
<A NAME="tex2html388"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html369"
|
||||
<A NAME="tex2html382"
|
||||
HREF="node23.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html377"
|
||||
<A NAME="tex2html390"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html380"
|
||||
HREF="node25.html">Subroutine free</A>
|
||||
<B> Up:</B> <A NAME="tex2html376"
|
||||
<B> Next:</B> <A NAME="tex2html393"
|
||||
HREF="node25.html">Method free</A>
|
||||
<B> Up:</B> <A NAME="tex2html389"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html370"
|
||||
HREF="node23.html">Subroutine smoothers_build</A>
|
||||
<B> <A NAME="tex2html378"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> Previous:</B> <A NAME="tex2html383"
|
||||
HREF="node23.html">Method build</A>
|
||||
<B> <A NAME="tex2html391"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+43
-45
@@ -1,19 +1,15 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Subroutine free</TITLE>
|
||||
<META NAME="description" CONTENT="Subroutine free">
|
||||
<TITLE>Method free</TITLE>
|
||||
<META NAME="description" CONTENT="Method free">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,70 +21,72 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html391"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html404"
|
||||
HREF="node26.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html387"
|
||||
<A NAME="tex2html400"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html381"
|
||||
<A NAME="tex2html394"
|
||||
HREF="node24.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html389"
|
||||
<A NAME="tex2html402"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html392"
|
||||
HREF="node26.html">Subroutine descr</A>
|
||||
<B> Up:</B> <A NAME="tex2html388"
|
||||
<B> Next:</B> <A NAME="tex2html405"
|
||||
HREF="node26.html">Method descr</A>
|
||||
<B> Up:</B> <A NAME="tex2html401"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html382"
|
||||
HREF="node24.html">Subroutine apply</A>
|
||||
<B> <A NAME="tex2html390"
|
||||
<B> Previous:</B> <A NAME="tex2html395"
|
||||
HREF="node24.html">Method apply</A>
|
||||
<B> <A NAME="tex2html403"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00087000000000000000"></A><A NAME="sec:precfree"></A>
|
||||
<BR>
|
||||
Subroutine free
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
Method free
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call p%free(p,info)</code>
|
||||
<BR></FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%free(p,info)</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
This routine deallocates the preconditioner data structure <code>p</code>.
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
This method deallocates the preconditioner data structure <code>p</code>.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Arguments</B></FONT> </FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>info</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=298><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, intent(out)</code>.</FONT></FONT></FONT></TD>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=298><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=298><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Error code. If no error, 0 is returned. See Section <A HREF="node28.html#sec:errors">8</A> for details.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=298><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call mld_precfree(p,info)</code>
|
||||
</FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call mld_precfree(p,info)</code>
|
||||
</BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+62
-66
@@ -1,128 +1,124 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Subroutine descr</TITLE>
|
||||
<META NAME="description" CONTENT="Subroutine descr">
|
||||
<TITLE>Method descr</TITLE>
|
||||
<META NAME="description" CONTENT="Method descr">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node27.html">
|
||||
<LINK REL="previous" HREF="node25.html">
|
||||
<LINK REL="up" HREF="node18.html">
|
||||
<LINK REL="next" HREF="node27.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html401"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html416"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html397"
|
||||
<A NAME="tex2html412"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html393"
|
||||
<A NAME="tex2html406"
|
||||
HREF="node25.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html399"
|
||||
<A NAME="tex2html414"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html402"
|
||||
HREF="node27.html">Adding new smoother and</A>
|
||||
<B> Up:</B> <A NAME="tex2html398"
|
||||
<B> Next:</B> <A NAME="tex2html417"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html413"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html394"
|
||||
HREF="node25.html">Subroutine free</A>
|
||||
<B> <A NAME="tex2html400"
|
||||
<B> Previous:</B> <A NAME="tex2html407"
|
||||
HREF="node25.html">Method free</A>
|
||||
<B> <A NAME="tex2html415"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00088000000000000000"></A><A NAME="sec:precdescr"></A>
|
||||
<BR>
|
||||
Subroutine descr
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
Method descr
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call p%descr(info, [iout])</code>
|
||||
<BR></FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%descr(info, [iout])</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
This routine prints a description of the preconditioner <code>p</code> to the standard output or
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
This method prints a description of the preconditioner <code>p</code> to the standard output or
|
||||
to a file. It must be called after <code>hierachy_build</code> and <code>smoothers_build</code>,
|
||||
or <code>build</code>, have been called.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Arguments</B></FONT> </FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>info</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, intent(out)</code>.</FONT></FONT></FONT></TD>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Error code. If no error, 0 is returned. See Section <A HREF="node28.html#sec:errors">8</A> for details.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>iout</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, intent(in), optional</code>.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>iout</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(in), optional</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The id of the file where the preconditioner description
|
||||
will be printed; the default is the standard output.</FONT></FONT></FONT></TD>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The id of the file where the preconditioner description
|
||||
will be printed; the default is the standard output.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call mld_precdescr(p,info [,iout])</code>
|
||||
</FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call mld_precdescr(p,info [,iout])</code>
|
||||
</BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html401"
|
||||
<A NAME="tex2html416"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html397"
|
||||
<A NAME="tex2html412"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html393"
|
||||
<A NAME="tex2html406"
|
||||
HREF="node25.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html399"
|
||||
<A NAME="tex2html414"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html402"
|
||||
HREF="node27.html">Adding new smoother and</A>
|
||||
<B> Up:</B> <A NAME="tex2html398"
|
||||
<B> Next:</B> <A NAME="tex2html417"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html413"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html394"
|
||||
HREF="node25.html">Subroutine free</A>
|
||||
<B> <A NAME="tex2html400"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> Previous:</B> <A NAME="tex2html407"
|
||||
HREF="node25.html">Method free</A>
|
||||
<B> <A NAME="tex2html415"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+46
-152
@@ -1,185 +1,79 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Adding new smoother and solver objects to MLD2P4</TITLE>
|
||||
<META NAME="description" CONTENT="Adding new smoother and solver objects to MLD2P4">
|
||||
<TITLE>Auxiliary Methods</TITLE>
|
||||
<META NAME="description" CONTENT="Auxiliary Methods">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node28.html">
|
||||
<LINK REL="previous" HREF="node18.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="previous" HREF="node26.html">
|
||||
<LINK REL="up" HREF="node18.html">
|
||||
<LINK REL="next" HREF="node28.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html413"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html426"
|
||||
HREF="node28.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html409"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html422"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html403"
|
||||
<A NAME="tex2html418"
|
||||
HREF="node26.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html411"
|
||||
<A NAME="tex2html424"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html414"
|
||||
HREF="node28.html">Error Handling</A>
|
||||
<B> Up:</B> <A NAME="tex2html410"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html404"
|
||||
HREF="node26.html">Subroutine descr</A>
|
||||
<B> <A NAME="tex2html412"
|
||||
<B> Next:</B> <A NAME="tex2html427"
|
||||
HREF="node28.html">Method: dump</A>
|
||||
<B> Up:</B> <A NAME="tex2html423"
|
||||
HREF="node18.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html419"
|
||||
HREF="node26.html">Method descr</A>
|
||||
<B> <A NAME="tex2html425"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00090000000000000000"></A><A NAME="sec:adding"></A>
|
||||
<H2><A NAME="SECTION00089000000000000000"></A><A NAME="sec:auxil"></A>
|
||||
<BR>
|
||||
Adding new smoother and solver objects to MLD2P4
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
Auxiliary Methods
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Various functionalities are implemented as additional methods of the
|
||||
preconditioner object.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Developers can add completely new smoother and/or solver classes
|
||||
derived from the base objects in the library (see Remark 2 in Section <A HREF="node20.html#sec:precset">6.2</A>),
|
||||
without recompiling the library itself.
|
||||
</FONT></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">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 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.
|
||||
</FONT></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Once the new smoother/solver class has been developed, to use it in
|
||||
the context of the multilevel preconditioners it is necessary to:
|
||||
</FONT></FONT></FONT>
|
||||
<UL>
|
||||
<LI>declare in the application program a variable of the new type;
|
||||
</LI>
|
||||
<LI>pass that variable as the argument to the <code>set</code> routine as in the
|
||||
following:
|
||||
<DIV ALIGN="CENTER">
|
||||
<code>call p%set(smoother,info [,ilev,ilmax,pos])</code>
|
||||
<BR><code>call p%set(solver,info [,ilev,ilmax,pos])</code>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
</DIV>
|
||||
</LI>
|
||||
<LI>link the code implementing the various methods into the application executable.
|
||||
</LI>
|
||||
</UL><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
The new solver object is then dynamically included in the
|
||||
preconditioner structure, and acts as a <I>mold</I> to which the
|
||||
preconditioner will conform, even though the MLD2P4 library has not
|
||||
been modified to account for this new development.
|
||||
</FONT></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">It is possible to define new values for the keyword <code>WHAT</code> in the
|
||||
<code>set</code> routine; if the library code does not recognize a keyword,
|
||||
it passes it down the composition hierarchy (levels containing
|
||||
smoothers containing in turn solvers), so that it can be eventually caught by
|
||||
the new solver.
|
||||
</FONT></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">An example is provided in the source code distribution under the
|
||||
folder <code>tests/newslv</code>. In this example we are implementing a new
|
||||
incomplete factorization variant (which is simply the ILU(0)
|
||||
factorization under a new name). Because of the specifics of this case, it is
|
||||
possible to reuse the basic structure of the ILU solver, with its
|
||||
L/D/U components and the methods needed to apply the solver; only a
|
||||
few methods, such as the description and most importantly the build,
|
||||
need to be ovverridden (rewritten).
|
||||
</FONT></FONT></FONT>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The interfaces for the calls shown above are defined using
|
||||
</FONT></FONT></FONT>
|
||||
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=40><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>smoother</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>class(mld_x_base_smoother_type)</code> </FONT></FONT></FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=40><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The user-defined new smoother to be employed in the
|
||||
preconditioner.</FONT></FONT></FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=40><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<code>solver</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>class(mld_x_base_solver_type)</code> </FONT></FONT></FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=40><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The user-defined new solver to be employed in the
|
||||
preconditioner.
|
||||
</FONT></FONT></FONT></TD>
|
||||
</TR>
|
||||
</TABLE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
The other arguments are defined in the way described in
|
||||
Sec. <A HREF="node20.html#sec:precset">6.2</A>. As an example, in the <code>tests/newslv</code>
|
||||
code we define a new object of type <code>mld_d_tlu_solver_type</code>, and
|
||||
we pass it as follows:
|
||||
</FONT></FONT></FONT><PRE>
|
||||
! sparse matrix and preconditioner
|
||||
type(psb_dspmat_type) :: a
|
||||
type(mld_dprec_type) :: prec
|
||||
type(mld_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)
|
||||
</PRE><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html413"
|
||||
HREF="node28.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html409"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html403"
|
||||
HREF="node26.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html411"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html414"
|
||||
HREF="node28.html">Error Handling</A>
|
||||
<B> Up:</B> <A NAME="tex2html410"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html404"
|
||||
HREF="node26.html">Subroutine descr</A>
|
||||
<B> <A NAME="tex2html412"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html428"
|
||||
HREF="node28.html">Method: dump</A>
|
||||
<LI><A NAME="tex2html429"
|
||||
HREF="node29.html">Method: clone</A>
|
||||
<LI><A NAME="tex2html430"
|
||||
HREF="node30.html">Method: sizeof</A>
|
||||
<LI><A NAME="tex2html431"
|
||||
HREF="node31.html">Method: allocate_wrk</A>
|
||||
<LI><A NAME="tex2html432"
|
||||
HREF="node32.html">Method: free_wrk</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+59
-43
@@ -1,77 +1,93 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Error Handling</TITLE>
|
||||
<META NAME="description" CONTENT="Error Handling">
|
||||
<TITLE>Method: dump</TITLE>
|
||||
<META NAME="description" CONTENT="Method: dump">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node29.html">
|
||||
<LINK REL="previous" HREF="node27.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="up" HREF="node27.html">
|
||||
<LINK REL="next" HREF="node29.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html425"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html443"
|
||||
HREF="node29.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html421"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html439"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html415"
|
||||
<A NAME="tex2html433"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html423"
|
||||
<A NAME="tex2html441"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html426"
|
||||
HREF="node29.html">License</A>
|
||||
<B> Up:</B> <A NAME="tex2html422"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html416"
|
||||
HREF="node27.html">Adding new smoother and</A>
|
||||
<B> <A NAME="tex2html424"
|
||||
<B> Next:</B> <A NAME="tex2html444"
|
||||
HREF="node29.html">Method: clone</A>
|
||||
<B> Up:</B> <A NAME="tex2html440"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html434"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<B> <A NAME="tex2html442"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000100000000000000000"></A><A NAME="sec:errors"></A>
|
||||
<BR>
|
||||
Error Handling
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<H3><A NAME="SECTION00089100000000000000">
|
||||
Method: dump</A>
|
||||
</H3><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The error handling in MLD2P4 is based on the PSBLAS error
|
||||
handling. Error conditions are signaled via an integer argument
|
||||
<code>info</code>; whenever an error condition is detected, an error trace
|
||||
stack is built by the library up to the top-level, user-callable
|
||||
routine. This routine will then decide, according to the user
|
||||
preferences, whether the error should be handled by terminating the
|
||||
program or by returning the error condition to the user code, which
|
||||
will then take action, and whether
|
||||
an error message should be printed. These options may be set by using
|
||||
the PSBLAS error handling routines; for further details see the PSBLAS
|
||||
User's Guide [<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>].
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Dump on file.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>amold</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_</code><SPAN CLASS="textit">x</SPAN><code>_base_sparse_mat), intent(in), optional</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal matrix
|
||||
components; this allows e.g. running on GPUs; it needs not be the
|
||||
same on all processes. See the PSBLAS User's Guide for
|
||||
details [<A
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>]. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+58
-67
@@ -1,100 +1,91 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>License</TITLE>
|
||||
<META NAME="description" CONTENT="License">
|
||||
<TITLE>Method: clone</TITLE>
|
||||
<META NAME="description" CONTENT="Method: clone">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node30.html">
|
||||
<LINK REL="previous" HREF="node28.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="up" HREF="node27.html">
|
||||
<LINK REL="next" HREF="node30.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html437"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html455"
|
||||
HREF="node30.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html433"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html451"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html427"
|
||||
<A NAME="tex2html445"
|
||||
HREF="node28.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html435"
|
||||
<A NAME="tex2html453"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html438"
|
||||
HREF="node30.html">Bibliography</A>
|
||||
<B> Up:</B> <A NAME="tex2html434"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html428"
|
||||
HREF="node28.html">Error Handling</A>
|
||||
<B> <A NAME="tex2html436"
|
||||
<B> Next:</B> <A NAME="tex2html456"
|
||||
HREF="node30.html">Method: sizeof</A>
|
||||
<B> Up:</B> <A NAME="tex2html452"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html446"
|
||||
HREF="node28.html">Method: dump</A>
|
||||
<B> <A NAME="tex2html454"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000110000000000000000"></A><A NAME="sec:license"></A>
|
||||
<BR>
|
||||
License
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<H3><A NAME="SECTION00089200000000000000">
|
||||
Method: clone</A>
|
||||
</H3><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The MLD2P4 is freely distributable under the following copyright
|
||||
terms: </FONT></FONT></FONT><PRE>
|
||||
|
||||
MLD2P4 version 2.1
|
||||
MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
|
||||
(C) Copyright 2008, 2010, 2012, 2015, 2017
|
||||
|
||||
Salvatore Filippone Cranfield University, Cranfield, UK
|
||||
Pasqua D'Ambra IAC-CNR, Naples, IT
|
||||
Daniela di Serafino University of Campania L. Vanvitelli, Caserta, 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.
|
||||
</PRE><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%clone(pout,info)</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Create a (deep) copy of the preconditioner object.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>pout</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>type(mld_</code><SPAN CLASS="textit">x</SPAN><code>prec_type), intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The copy of the preconditioner data structure. Note
|
||||
that <SPAN CLASS="textit">x</SPAN> must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+70
-67
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>General Overview</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,53 +21,55 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html117"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html124"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html113"
|
||||
<A NAME="tex2html120"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html107"
|
||||
<A NAME="tex2html114"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html115"
|
||||
<A NAME="tex2html122"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html118"
|
||||
<B> Next:</B> <A NAME="tex2html125"
|
||||
HREF="node4.html">Code Distribution</A>
|
||||
<B> Up:</B> <A NAME="tex2html114"
|
||||
<B> Up:</B> <A NAME="tex2html121"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html108"
|
||||
<B> Previous:</B> <A NAME="tex2html115"
|
||||
HREF="node2.html">Contents</A>
|
||||
<B> <A NAME="tex2html116"
|
||||
<B> <A NAME="tex2html123"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00030000000000000000"></A><A NAME="sec:overview"></A>
|
||||
<BR>
|
||||
General Overview
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The M<SMALL>ULTI</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE BASED ON
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The M<SMALL>ULTI</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE BASED ON
|
||||
</SMALL>PSBLAS (MLD2P4) provides parallel Algebraic MultiGrid (AMG) and Domain
|
||||
Decomposition preconditioners (see, e.g., [<A
|
||||
HREF="node30.html#Briggs2000">3</A>,<A
|
||||
HREF="node30.html#Stuben_01">23</A>,<A
|
||||
HREF="node30.html#dd2_96">21</A>]),
|
||||
HREF="node36.html#Briggs2000">3</A>,<A
|
||||
HREF="node36.html#Stuben_01">23</A>,<A
|
||||
HREF="node36.html#dd2_96">21</A>]),
|
||||
to be used in the iterative solution of linear systems,
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<BR>
|
||||
<DIV ALIGN="RIGHT">
|
||||
<DIV ALIGN="RIGHT" CLASS="mathdisplay">
|
||||
|
||||
<!-- MATH
|
||||
\begin{equation}
|
||||
Ax=b,
|
||||
\end{equation}
|
||||
-->
|
||||
<A NAME="system1"></A>
|
||||
<TABLE WIDTH="100%" ALIGN="CENTER">
|
||||
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="system1"></A><IMG
|
||||
WIDTH="58" HEIGHT="30" BORDER="0"
|
||||
@@ -79,69 +77,73 @@ Ax=b,
|
||||
ALT="\begin{displaymath}
|
||||
Ax=b,
|
||||
\end{displaymath}"></TD>
|
||||
<TD WIDTH=10 ALIGN="RIGHT">
|
||||
(1)</TD></TR>
|
||||
<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT">
|
||||
(<SPAN CLASS="arabic">1</SPAN>)</TD></TR>
|
||||
</TABLE>
|
||||
<BR CLEAR="ALL"></DIV><P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
where <IMG
|
||||
<BR CLEAR="ALL"></DIV><P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
where <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img3.png"
|
||||
ALT="$A$"> is a square, real or complex, sparse matrix. The name of the package comes from its original implementation, containing
|
||||
ALT="$A$"></SPAN> is a square, real or complex, sparse matrix.
|
||||
The name of the package comes from its original implementation, containing
|
||||
multilevel additive and hybrid Schwarz preconditioners, as well as one-level additive
|
||||
Schwarz preconditioners. The current version extends the original plan by including
|
||||
multilevel cycles and smoothers widely used in multigrid methods.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The multilevel preconditioners implemented in MLD2P4 are obtained by combining
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The multilevel preconditioners implemented in MLD2P4 are obtained by combining
|
||||
AMG cycles with smoothers and coarsest-level solvers. The V-, W-, and
|
||||
K-cycles [<A
|
||||
HREF="node30.html#Briggs2000">3</A>,<A
|
||||
HREF="node30.html#Notay2008">19</A>] are available, which allow to define
|
||||
HREF="node36.html#Briggs2000">3</A>,<A
|
||||
HREF="node36.html#Notay2008">19</A>] are available, which allow to define
|
||||
almost all the preconditioners in the package, including the multilevel hybrid
|
||||
Schwarz ones; a specific cycle is implemented to obtain multilevel additive
|
||||
Schwarz preconditioners. The Jacobi, hybridforward/backward Gauss-Seidel, block-Jacobi, and additive Schwarz methods
|
||||
Schwarz preconditioners. The Jacobi, hybrid
|
||||
forward/backward Gauss-Seidel, block-Jacobi, and additive Schwarz methods
|
||||
are available as smoothers. An algebraic approach is used to generate a hierarchy of
|
||||
coarse-level matrices and operators, without explicitly using any information on the
|
||||
geometry of the original problem, e.g., the discretization of a PDE. To this end,
|
||||
the smoothed aggregation technique [<A
|
||||
HREF="node30.html#BREZINA_VANEK">2</A>,<A
|
||||
HREF="node30.html#VANEK_MANDEL_BREZINA">25</A>]
|
||||
HREF="node36.html#BREZINA_VANEK">2</A>,<A
|
||||
HREF="node36.html#VANEK_MANDEL_BREZINA">25</A>]
|
||||
is applied. Either exact or approximate solvers can be used on the coarsest-level
|
||||
system. Specifically, different sparse LU factorizations from external
|
||||
packages, and native incomplete LU factorizations and Jacobi, hybrid Gauss-Seidel,
|
||||
and block-Jacobi solvers are available. All smoothers can be also exploited as one-level
|
||||
preconditioners.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">MLD2P4 is written in Fortran 2003, following an
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">MLD2P4 is written in Fortran 2003, following an
|
||||
object-oriented design through the exploitation of features
|
||||
such as abstract data type creation, type extension, functional overloading, and
|
||||
dynamic memory management. The parallel implementation is based on a Single Program Multiple Data
|
||||
dynamic memory management.
|
||||
The parallel implementation is based on a Single Program Multiple Data
|
||||
(SPMD) paradigm. Single and
|
||||
double precision implementations of MLD2P4 are available for both the
|
||||
real and the complex case, which can be used through a single
|
||||
interface.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">MLD2P4 has been designed to implement scalable and easy-to-use
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">MLD2P4 has been designed to implement scalable and easy-to-use
|
||||
multilevel preconditioners in the context of the PSBLAS (Parallel Sparse BLAS)
|
||||
computational framework [<A
|
||||
HREF="node30.html#psblas_00">15</A>,<A
|
||||
HREF="node30.html#PSBLAS3">14</A>]. PSBLAS provides basic linear algebra
|
||||
HREF="node36.html#psblas_00">15</A>,<A
|
||||
HREF="node36.html#PSBLAS3">14</A>]. PSBLAS provides basic linear algebra
|
||||
operators and data management facilities for distributed sparse matrices,
|
||||
as well as parallel Krylov solvers which can be used with the MLD2P4 preconditioners.
|
||||
The choice of PSBLAS has been mainly motivated by the need of having
|
||||
a portable and efficient software infrastructure implementing ``de facto'' standard
|
||||
a portable and efficient software infrastructure implementing “de facto” standard
|
||||
parallel sparse linear algebra kernels, to pursue goals such as performance,
|
||||
portability, modularity ed extensibility in the development of the preconditioner
|
||||
package. On the other hand, the implementation of MLD2P4 has led to some
|
||||
revisions and extentions of the original PSBLAS kernels.
|
||||
The inter-process comunication required by MLD2P4 is encapsulated
|
||||
in the PSBLAS routines;therefore, MLD2P4 can be run on any parallel machine where PSBLAS
|
||||
in the PSBLAS routines;
|
||||
therefore, MLD2P4 can be run on any parallel machine where PSBLAS
|
||||
implementations are available.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">MLD2P4 has a layered and modular software architecture where three main layers can be
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">MLD2P4 has a layered and modular software architecture where three main layers can be
|
||||
identified. The lower layer consists of the PSBLAS kernels, the middle one implements
|
||||
the construction and application phases of the preconditioners, and the upper one
|
||||
provides a uniform interface to all the preconditioners.
|
||||
@@ -150,19 +152,19 @@ few black-box routines at the upper layer allow all users to easily
|
||||
build and apply any preconditioner available in MLD2P4;
|
||||
facilities are also available allowing expert users to extend the set of smoothers
|
||||
and solvers for building new versions of the preconditioners (see
|
||||
Section <A HREF="node27.html#sec:adding">7</A>).
|
||||
</FONT></FONT></FONT>
|
||||
Section <A HREF="node33.html#sec:adding">7</A>).
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">We note that the user interface of MLD2P4 2.1 has been extended with respect to the
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">We note that the user interface of MLD2P4 2.1 has been extended with respect to the
|
||||
previous versions in order to separate the construction of the multilevel hierarchy from
|
||||
the construction of the smoothers and solvers, and to allow for more flexibility
|
||||
at each level. The software architecture described in [<A
|
||||
HREF="node30.html#MLD2P4_TOMS">8</A>] has significantly
|
||||
HREF="node36.html#MLD2P4_TOMS">8</A>] has significantly
|
||||
evolved too, in order to fully exploit the Fortran 2003 features implemented in PSBLAS 3.
|
||||
However, compatibility with previous versions has been preserved.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">This guide is organized as follows. General information on the distribution of the source
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">This guide is organized as follows. General information on the distribution of the source
|
||||
code is reported in Section <A HREF="node4.html#sec:distribution">2</A>, while details on the configuration
|
||||
and installation of the package are given in Section <A HREF="node6.html#sec:building">3</A>. A short description
|
||||
of the preconditioners implemented in MLD2P4 is provided in Section <A HREF="node12.html#sec:background">4</A>,
|
||||
@@ -171,35 +173,36 @@ preconditioners with the Krylov solvers implemented in PSBLAS are reported
|
||||
in Section <A HREF="node16.html#sec:started">5</A>, where the Fortran codes of a few sample programs
|
||||
are also shown. A reference guide for the user interface routines is provided
|
||||
in Section <A HREF="node18.html#sec:userinterface">6</A>. Information on the extension of the package
|
||||
through the addition of new smoothers and solvers is reported in Section <A HREF="node27.html#sec:adding">7</A>.
|
||||
through the addition of new smoothers and solvers is reported in Section <A HREF="node33.html#sec:adding">7</A>.
|
||||
The error handling mechanism used by the package
|
||||
is briefly described in Section <A HREF="node28.html#sec:errors">8</A>. The copyright terms concerning the
|
||||
distribution and modification of MLD2P4 are reported in Appendix <A HREF="node29.html#sec:license">A</A>.
|
||||
</FONT></FONT></FONT>
|
||||
is briefly described in Section <A HREF="node34.html#sec:errors">8</A>. The copyright terms concerning the
|
||||
distribution and modification of MLD2P4 are reported in Appendix <A HREF="node35.html#sec:license">A</A>.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html117"
|
||||
<A NAME="tex2html124"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html113"
|
||||
<A NAME="tex2html120"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html107"
|
||||
<A NAME="tex2html114"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html115"
|
||||
<A NAME="tex2html122"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html118"
|
||||
<B> Next:</B> <A NAME="tex2html125"
|
||||
HREF="node4.html">Code Distribution</A>
|
||||
<B> Up:</B> <A NAME="tex2html114"
|
||||
<B> Up:</B> <A NAME="tex2html121"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html108"
|
||||
<B> Previous:</B> <A NAME="tex2html115"
|
||||
HREF="node2.html">Contents</A>
|
||||
<B> <A NAME="tex2html116"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html123"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+33
-145
@@ -1,179 +1,67 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Bibliography</TITLE>
|
||||
<META NAME="description" CONTENT="Bibliography">
|
||||
<TITLE>Method: sizeof</TITLE>
|
||||
<META NAME="description" CONTENT="Method: sizeof">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node31.html">
|
||||
<LINK REL="previous" HREF="node29.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="up" HREF="node27.html">
|
||||
<LINK REL="next" HREF="node31.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html449"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html467"
|
||||
HREF="node31.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html445"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html463"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html439"
|
||||
<A NAME="tex2html457"
|
||||
HREF="node29.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html447"
|
||||
<A NAME="tex2html465"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html450"
|
||||
HREF="node31.html">About this document ...</A>
|
||||
<B> Up:</B> <A NAME="tex2html446"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html440"
|
||||
HREF="node29.html">License</A>
|
||||
<B> <A NAME="tex2html448"
|
||||
<B> Next:</B> <A NAME="tex2html468"
|
||||
HREF="node31.html">Method: allocate_wrk</A>
|
||||
<B> Up:</B> <A NAME="tex2html464"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html458"
|
||||
HREF="node29.html">Method: clone</A>
|
||||
<B> <A NAME="tex2html466"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR><BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
</FONT></FONT></FONT>
|
||||
<H2><A NAME="SECTION000120000000000000000">
|
||||
Bibliography</A>
|
||||
</H2><DL COMPACT><DD>
|
||||
|
||||
<H3><A NAME="SECTION00089300000000000000">
|
||||
Method: sizeof</A>
|
||||
</H3><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<P></P><DT><A NAME="MUMPS">1</A>
|
||||
<DD>
|
||||
P. R. Amestoy, C. Ashcraft, O. Boiteau, A. Buttari, J. L'Excellent, C. Weisbecker,
|
||||
<EM>Improving multifrontal methods by means of block low-rank representations</EM>,
|
||||
SIAM Journal on Scientific Computing, volume 37 (3), 2015, A1452-A1474.
|
||||
See also <TT>http://mumps.enseeiht.fr</TT>.<P></P><DT><A NAME="BREZINA_VANEK">2</A>
|
||||
<DD>
|
||||
M. Brezina, P. Vanek,
|
||||
<EM>A Black-Box Iterative Solver Based on a Two-Level Schwarz Method</EM>,
|
||||
Computing, 63, 1999, 233-263.<P></P><DT><A NAME="Briggs2000">3</A>
|
||||
<DD>
|
||||
W. L. Briggs, V. E. Henson, S. F. McCormick,
|
||||
<EM>A Multigrid Tutorial, Second Edition</EM>,
|
||||
SIAM, 2000.<P></P><DT><A NAME="para_04">4</A>
|
||||
<DD>
|
||||
A. Buttari, P. D'Ambra, D. di Serafino, S. Filippone,
|
||||
<EM>Extending PSBLAS to Build Parallel Schwarz Preconditioners</EM>,
|
||||
in J. Dongarra, K. Madsen, J. Wasniewski, editors,
|
||||
Proceedings of PARA 04 Workshop on State of the Art
|
||||
in Scientific Computing, Lecture Notes in Computer Science,
|
||||
Springer, 2005, 593-602.<P></P><DT><A NAME="aaecc_07">5</A>
|
||||
<DD>
|
||||
A. Buttari, P. D'Ambra, D. di Serafino, S. Filippone,
|
||||
<EM>2LEV-D2P4: a package of high-performance preconditioners
|
||||
for scientific and engineering applications</EM>,
|
||||
Applicable Algebra in Engineering, Communications and Computing,
|
||||
18 (3) 2007, 223-239.<P></P><DT><A NAME="CAI_SARKIS">6</A>
|
||||
<DD>
|
||||
X. C. Cai, M. Sarkis,
|
||||
<EM>A Restricted Additive Schwarz Preconditioner for General Sparse Linear Systems</EM>,
|
||||
SIAM Journal on Scientific Computing, 21 (2), 1999, 792-797.<P></P><DT><A NAME="apnum_07">7</A>
|
||||
<DD>
|
||||
P. D'Ambra, S. Filippone, D. di Serafino,
|
||||
<EM>On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners</EM>,
|
||||
Applied Numerical Mathematics, Elsevier Science,
|
||||
57 (11-12), 2007, 1181-1196.<P></P><DT><A NAME="MLD2P4_TOMS">8</A>
|
||||
<DD>
|
||||
P. D'Ambra, D. di Serafino, S. Filippone,
|
||||
<I>MLD2P4: a Package of Parallel Multilevel
|
||||
Algebraic Domain Decomposition Preconditioners
|
||||
in Fortran 95</I>, ACM Trans. Math. Softw., 37(3), 2010, art. 30.<P></P><DT><A NAME="UMFPACK">9</A>
|
||||
<DD>
|
||||
T. A. Davis,
|
||||
<EM>Algorithm 832: UMFPACK - an Unsymmetric-pattern Multifrontal
|
||||
Method with a Column Pre-ordering Strategy</EM>,
|
||||
ACM Transactions on Mathematical Software, 30, 2004, 196-199.
|
||||
(See also <TT>http://www.cise.ufl.edu/~davis/</TT>)<P></P><DT><A NAME="SUPERLU">10</A>
|
||||
<DD>
|
||||
J. W. Demmel, S. C. Eisenstat, J. R. Gilbert, X. S. Li, J. W. H. Liu,
|
||||
<EM>A supernodal approach to sparse partial pivoting</EM>,
|
||||
SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 720-755.<P></P><DT><A NAME="blas3">11</A>
|
||||
<DD>
|
||||
J. J. Dongarra, J. Du Croz, I. S. Duff, S. Hammarling,
|
||||
<I>A set of Level 3 Basic Linear Algebra Subprograms</I>,
|
||||
ACM Transactions on Mathematical Software, 16 (1) 1990, 1-17.<P></P><DT><A NAME="blas2">12</A>
|
||||
<DD>
|
||||
J. J. Dongarra, J. Du Croz, S. Hammarling, R. J. Hanson,
|
||||
<I>An extended set of FORTRAN Basic Linear Algebra Subprograms</I>,
|
||||
ACM Transactions on Mathematical Software, 14 (1) 1988, 1-17.<P></P><DT><A NAME="PSBLASGUIDE">13</A>
|
||||
<DD>
|
||||
S. Filippone, A. Buttari,
|
||||
<EM>PSBLAS 3.5.0 User's Guide. A Reference Guide for the Parallel Sparse BLAS Library</EM>, 2012,
|
||||
available from <TT>https://github.com/sfilippone/psblas3/tree/master/docs</TT>.<P></P><DT><A NAME="PSBLAS3">14</A>
|
||||
<DD>
|
||||
S. Filippone, A. Buttari,
|
||||
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>.
|
||||
ACM Transactions on on Mathematical Software, 38 (4), 2012, art. 23.<P></P><DT><A NAME="psblas_00">15</A>
|
||||
<DD>
|
||||
S. Filippone, M. Colajanni,
|
||||
<EM>PSBLAS: A Library for Parallel Linear Algebra
|
||||
Computation on Sparse Matrices</EM>,
|
||||
ACM Transactions on Mathematical Software, 26 (4), 2000, 527-550.<P></P><DT><A NAME="MPI2">16</A>
|
||||
<DD>
|
||||
W. Gropp, S. Huss-Lederman, A. Lumsdaine, E. Lusk, B. Nitzberg, W. Saphir, M. Snir,
|
||||
<EM>MPI: The Complete Reference. Volume 2 - The MPI-2 Extensions</EM>,
|
||||
MIT Press, 1998.<P></P><DT><A NAME="blas1">17</A>
|
||||
<DD>
|
||||
C. L. Lawson, R. J. Hanson, D. Kincaid, F. T. Krogh,
|
||||
<I>Basic Linear Algebra Subprograms for FORTRAN usage</I>,
|
||||
ACM Transactions on Mathematical Software, 5 (3), 1979, 308-323.<P></P><DT><A NAME="SUPERLUDIST">18</A>
|
||||
<DD>
|
||||
X. S. Li, J. W. Demmel,
|
||||
<EM>SuperLU_DIST: A Scalable Distributed-memory
|
||||
Sparse Direct Solver for Unsymmetric Linear Systems</EM>,
|
||||
ACM Transactions on Mathematical Software, 29 (2), 2003, 110-140.<P></P><DT><A NAME="Notay2008">19</A>
|
||||
<DD>
|
||||
Y. Notay, P. S. Vassilevski,
|
||||
<EM>Recursive Krylov-based multigrid cycles</EM>,
|
||||
Numerical Linear Algebra with Applications, 15 (5), 2008, 473-487. <P></P><DT><A NAME="Saad_book">20</A>
|
||||
<DD>
|
||||
Y. Saad,
|
||||
<EM>Iterative methods for sparse linear systems</EM>, 2nd edition, SIAM, 2003.<P></P><DT><A NAME="dd2_96">21</A>
|
||||
<DD>
|
||||
B. Smith, P. Bjorstad, W. Gropp,
|
||||
<EM>Domain Decomposition: Parallel Multilevel Methods for Elliptic
|
||||
Partial Differential Equations</EM>,
|
||||
Cambridge University Press, 1996.<P></P><DT><A NAME="MPI1">22</A>
|
||||
<DD>
|
||||
M. Snir, S. Otto, S. Huss-Lederman, D. Walker, J. Dongarra,
|
||||
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition,
|
||||
MIT Press, 1998.<P></P><DT><A NAME="Stuben_01">23</A>
|
||||
<DD>
|
||||
K. Stüben,
|
||||
<EM>An Introduction to Algebraic Multigrid</EM>,
|
||||
in A. Schüller, U. Trottenberg, C. Oosterlee, Multigrid,
|
||||
Academic Press, 2001.<P></P><DT><A NAME="TUMINARO_TONG">24</A>
|
||||
<DD>
|
||||
R. S. Tuminaro, C. Tong,
|
||||
<EM>Parallel Smoothed Aggregation Multigrid: Aggregation Strategies on Massively Parallel Machines</EM>, in J. Donnelley, editor, Proceedings of SuperComputing 2000, Dallas, 2000.<P></P><DT><A NAME="VANEK_MANDEL_BREZINA">25</A>
|
||||
<DD>
|
||||
P. Vanek, J. Mandel, M. Brezina,
|
||||
<EM>Algebraic Multigrid by Smoothed Aggregation for Second and Fourth Order Elliptic Problems</EM>,
|
||||
Computing, 56 (3) 1996, 179-196.
|
||||
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>sz = p%sizeof()</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
</DL><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Return memory footprint in bytes.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><BR><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+97
-40
@@ -1,70 +1,127 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>About this document ...</TITLE>
|
||||
<META NAME="description" CONTENT="About this document ...">
|
||||
<TITLE>Method: allocate_wrk</TITLE>
|
||||
<META NAME="description" CONTENT="Method: allocate_wrk">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node32.html">
|
||||
<LINK REL="previous" HREF="node30.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="up" HREF="node27.html">
|
||||
<LINK REL="next" HREF="node32.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png">
|
||||
<A NAME="tex2html455"
|
||||
HREF="userhtml.html">
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html479"
|
||||
HREF="node32.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html475"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html451"
|
||||
<A NAME="tex2html469"
|
||||
HREF="node30.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html457"
|
||||
<A NAME="tex2html477"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Up:</B> <A NAME="tex2html456"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html452"
|
||||
HREF="node30.html">Bibliography</A>
|
||||
<B> <A NAME="tex2html458"
|
||||
<B> Next:</B> <A NAME="tex2html480"
|
||||
HREF="node32.html">Method: free_wrk</A>
|
||||
<B> Up:</B> <A NAME="tex2html476"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html470"
|
||||
HREF="node30.html">Method: sizeof</A>
|
||||
<B> <A NAME="tex2html478"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000130000000000000000">
|
||||
About this document ...</A>
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT><P>
|
||||
This document was generated using the
|
||||
<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2012 (1.2)
|
||||
<H3><A NAME="SECTION00089400000000000000">
|
||||
Method: allocate_wrk</A>
|
||||
</H3><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
Copyright © 1993, 1994, 1995, 1996,
|
||||
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
|
||||
Computer Based Learning Unit, University of Leeds.
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%allocate_wrk(info[, vmold])</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Allocate internal work vectors. Each application of the preconditioner
|
||||
uses a number of work vectors which are allocated internally as
|
||||
necessary; therefore allocation and deallocation of memory occurs
|
||||
multiple times during the execution of a Krylov method. In most cases
|
||||
this strategy is perfectly acceptable, but
|
||||
on some platforms, most notably GPUs, memory allocation is
|
||||
a slow operation, and the default behaviour would lead to a
|
||||
slowdown. This method allows to trade space for time by preallocating
|
||||
the internal workspace outside of the invocation of a Krylov
|
||||
method. When using GPUs or other specialized devices, the <code>vmold</code>
|
||||
argument is also necessary to ensure the internal work vectors are of
|
||||
the appropriate dynamic type to exploit the accelerator hardware; when
|
||||
allocation occurs internally this is taken care of based on the dynamic
|
||||
type of the <code>x</code> argument to the <code>apply</code> method.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>vmold</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(psb_</code><SPAN CLASS="textit">x</SPAN><code>_base_vect_type), intent(in), optional</code>. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The desired dynamic type for internal vector
|
||||
components; this allows e.g. running on GPUs. </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html479"
|
||||
HREF="node32.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html475"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html469"
|
||||
HREF="node30.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html477"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
Copyright © 1997, 1998, 1999,
|
||||
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
|
||||
Mathematics Department, Macquarie University, Sydney.
|
||||
<P>
|
||||
The command line arguments were: <BR>
|
||||
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
|
||||
<P>
|
||||
The translation was initiated by Salvatore Filippone on 2017-10-23<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BR><HR>
|
||||
<B> Next:</B> <A NAME="tex2html480"
|
||||
HREF="node32.html">Method: free_wrk</A>
|
||||
<B> Up:</B> <A NAME="tex2html476"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html470"
|
||||
HREF="node30.html">Method: sizeof</A>
|
||||
<B> <A NAME="tex2html478"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Method: free_wrk</TITLE>
|
||||
<META NAME="description" CONTENT="Method: free_wrk">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="previous" HREF="node31.html">
|
||||
<LINK REL="up" HREF="node27.html">
|
||||
<LINK REL="next" HREF="node33.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html489"
|
||||
HREF="node33.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html485"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html481"
|
||||
HREF="node31.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html487"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html490"
|
||||
HREF="node33.html">Adding new smoother and</A>
|
||||
<B> Up:</B> <A NAME="tex2html486"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html482"
|
||||
HREF="node31.html">Method: allocate_wrk</A>
|
||||
<B> <A NAME="tex2html488"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION00089500000000000000">
|
||||
Method: free_wrk</A>
|
||||
</H3><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%free_wrk(info)</code>
|
||||
<BR></BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Deallocate internal work vectors.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
|
||||
<P></P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>info</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section <A HREF="node34.html#sec:errors">8</A> for details.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,183 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Adding new smoother and solver objects to MLD2P4</TITLE>
|
||||
<META NAME="description" CONTENT="Adding new smoother and solver objects to MLD2P4">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node34.html">
|
||||
<LINK REL="previous" HREF="node18.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node34.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html501"
|
||||
HREF="node34.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html497"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html491"
|
||||
HREF="node32.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html499"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html502"
|
||||
HREF="node34.html">Error Handling</A>
|
||||
<B> Up:</B> <A NAME="tex2html498"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html492"
|
||||
HREF="node32.html">Method: free_wrk</A>
|
||||
<B> <A NAME="tex2html500"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00090000000000000000"></A><A NAME="sec:adding"></A>
|
||||
<BR>
|
||||
Adding new smoother and solver objects to MLD2P4
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Developers can add completely new smoother and/or solver classes
|
||||
derived from the base objects in the library (see Remark 2 in Section <A HREF="node20.html#sec:precset">6.2</A>),
|
||||
without recompiling the library itself.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">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 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.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Once the new smoother/solver class has been developed, to use it in
|
||||
the context of the multilevel preconditioners it is necessary to:
|
||||
</BIG></BIG></BIG>
|
||||
<UL>
|
||||
<LI>declare in the application program a variable of the new type;
|
||||
</LI>
|
||||
<LI>pass that variable as the argument to the <code>set</code> routine as in the
|
||||
following:
|
||||
<DIV ALIGN="CENTER">
|
||||
<code>call p%set(smoother,info [,ilev,ilmax,pos])</code>
|
||||
<BR><code>call p%set(solver,info [,ilev,ilmax,pos])</code>
|
||||
|
||||
</DIV>
|
||||
</LI>
|
||||
<LI>link the code implementing the various methods into the application executable.
|
||||
</LI>
|
||||
</UL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
The new solver object is then dynamically included in the
|
||||
preconditioner structure, and acts as a <SPAN CLASS="textit">mold</SPAN> to which the
|
||||
preconditioner will conform, even though the MLD2P4 library has not
|
||||
been modified to account for this new development.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">It is possible to define new values for the keyword <code>WHAT</code> in the
|
||||
<code>set</code> routine; if the library code does not recognize a keyword,
|
||||
it passes it down the composition hierarchy (levels containing
|
||||
smoothers containing in turn solvers), so that it can be eventually caught by
|
||||
the new solver.
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">An example is provided in the source code distribution under the
|
||||
folder <code>tests/newslv</code>. In this example we are implementing a new
|
||||
incomplete factorization variant (which is simply the ILU(0)
|
||||
factorization under a new name). Because of the specifics of this case, it is
|
||||
possible to reuse the basic structure of the ILU solver, with its
|
||||
L/D/U components and the methods needed to apply the solver; only a
|
||||
few methods, such as the description and most importantly the build,
|
||||
need to be ovverridden (rewritten).
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The interfaces for the calls shown above are defined using
|
||||
</BIG></BIG></BIG>
|
||||
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=40><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>smoother</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(mld_x_base_smoother_type)</code> </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=40><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The user-defined new smoother to be employed in the
|
||||
preconditioner.</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=40><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
<code>solver</code> </BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>class(mld_x_base_solver_type)</code> </BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=40><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The user-defined new solver to be employed in the
|
||||
preconditioner.
|
||||
</BIG></BIG></BIG></TD>
|
||||
</TR>
|
||||
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
The other arguments are defined in the way described in
|
||||
Sec. <A HREF="node20.html#sec:precset">6.2</A>. As an example, in the <code>tests/newslv</code>
|
||||
code we define a new object of type <code>mld_d_tlu_solver_type</code>, and
|
||||
we pass it as follows:
|
||||
</BIG></BIG></BIG><PRE>
|
||||
! sparse matrix and preconditioner
|
||||
type(psb_dspmat_type) :: a
|
||||
type(mld_dprec_type) :: prec
|
||||
type(mld_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)
|
||||
</PRE><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html501"
|
||||
HREF="node34.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html497"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html491"
|
||||
HREF="node32.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html499"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html502"
|
||||
HREF="node34.html">Error Handling</A>
|
||||
<B> Up:</B> <A NAME="tex2html498"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html492"
|
||||
HREF="node32.html">Method: free_wrk</A>
|
||||
<B> <A NAME="tex2html500"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,75 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Error Handling</TITLE>
|
||||
<META NAME="description" CONTENT="Error Handling">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node35.html">
|
||||
<LINK REL="previous" HREF="node33.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node35.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html513"
|
||||
HREF="node35.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html509"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html503"
|
||||
HREF="node33.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html511"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html514"
|
||||
HREF="node35.html">License</A>
|
||||
<B> Up:</B> <A NAME="tex2html510"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html504"
|
||||
HREF="node33.html">Adding new smoother and</A>
|
||||
<B> <A NAME="tex2html512"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000100000000000000000"></A><A NAME="sec:errors"></A>
|
||||
<BR>
|
||||
Error Handling
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The error handling in MLD2P4 is based on the PSBLAS error
|
||||
handling. Error conditions are signaled via an integer argument
|
||||
<code>info</code>; whenever an error condition is detected, an error trace
|
||||
stack is built by the library up to the top-level, user-callable
|
||||
routine. This routine will then decide, according to the user
|
||||
preferences, whether the error should be handled by terminating the
|
||||
program or by returning the error condition to the user code, which
|
||||
will then take action, and whether
|
||||
an error message should be printed. These options may be set by using
|
||||
the PSBLAS error handling routines; for further details see the PSBLAS
|
||||
User's Guide [<A
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>].
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>License</TITLE>
|
||||
<META NAME="description" CONTENT="License">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node36.html">
|
||||
<LINK REL="previous" HREF="node34.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node36.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html525"
|
||||
HREF="node36.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html521"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html515"
|
||||
HREF="node34.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html523"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html526"
|
||||
HREF="node36.html">Bibliography</A>
|
||||
<B> Up:</B> <A NAME="tex2html522"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html516"
|
||||
HREF="node34.html">Error Handling</A>
|
||||
<B> <A NAME="tex2html524"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000110000000000000000"></A><A NAME="sec:license"></A>
|
||||
<BR>
|
||||
License
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The MLD2P4 is freely distributable under the following copyright
|
||||
terms: </BIG></BIG></BIG><PRE>
|
||||
|
||||
MLD2P4 version 2.1
|
||||
MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
|
||||
(C) Copyright 2008, 2010, 2012, 2015, 2017
|
||||
|
||||
Salvatore Filippone Cranfield University, Cranfield, UK
|
||||
Pasqua D'Ambra IAC-CNR, Naples, IT
|
||||
Daniela di Serafino University of Campania L. Vanvitelli, Caserta, 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.
|
||||
</PRE><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
|
||||
</BIG></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,200 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Bibliography</TITLE>
|
||||
<META NAME="description" CONTENT="Bibliography">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node37.html">
|
||||
<LINK REL="previous" HREF="node35.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node37.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html537"
|
||||
HREF="node37.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html533"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html527"
|
||||
HREF="node35.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html535"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html538"
|
||||
HREF="node37.html">About this document ...</A>
|
||||
<B> Up:</B> <A NAME="tex2html534"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html528"
|
||||
HREF="node35.html">License</A>
|
||||
<B> <A NAME="tex2html536"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR><BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
</BIG></BIG></BIG>
|
||||
<H2><A NAME="SECTION000120000000000000000">
|
||||
Bibliography</A>
|
||||
</H2><DL COMPACT><DD>
|
||||
|
||||
<P>
|
||||
<P></P><DT><A NAME="MUMPS">1</A>
|
||||
<DD>
|
||||
P. R. Amestoy, C. Ashcraft, O. Boiteau, A. Buttari, J. L'Excellent, C. Weisbecker,
|
||||
<EM>Improving multifrontal methods by means of block low-rank representations</EM>,
|
||||
SIAM Journal on Scientific Computing, volume 37 (3), 2015, A1452-A1474.
|
||||
See also <TT>http://mumps.enseeiht.fr</TT>.
|
||||
<P></P><DT><A NAME="BREZINA_VANEK">2</A>
|
||||
<DD>
|
||||
M. Brezina, P. Vanek,
|
||||
<EM>A Black-Box Iterative Solver Based on a Two-Level Schwarz Method</EM>,
|
||||
Computing, 63, 1999, 233-263.
|
||||
<P></P><DT><A NAME="Briggs2000">3</A>
|
||||
<DD>
|
||||
W. L. Briggs, V. E. Henson, S. F. McCormick,
|
||||
<EM>A Multigrid Tutorial, Second Edition</EM>,
|
||||
SIAM, 2000.
|
||||
<P></P><DT><A NAME="para_04">4</A>
|
||||
<DD>
|
||||
A. Buttari, P. D'Ambra, D. di Serafino, S. Filippone,
|
||||
<EM>Extending PSBLAS to Build Parallel Schwarz Preconditioners</EM>,
|
||||
in J. Dongarra, K. Madsen, J. Wasniewski, editors,
|
||||
Proceedings of PARA 04 Workshop on State of the Art
|
||||
in Scientific Computing, Lecture Notes in Computer Science,
|
||||
Springer, 2005, 593-602.
|
||||
<P></P><DT><A NAME="aaecc_07">5</A>
|
||||
<DD>
|
||||
A. Buttari, P. D'Ambra, D. di Serafino, S. Filippone,
|
||||
<EM>2LEV-D2P4: a package of high-performance preconditioners
|
||||
for scientific and engineering applications</EM>,
|
||||
Applicable Algebra in Engineering, Communications and Computing,
|
||||
18 (3) 2007, 223-239.
|
||||
<P></P><DT><A NAME="CAI_SARKIS">6</A>
|
||||
<DD>
|
||||
X. C. Cai, M. Sarkis,
|
||||
<EM>A Restricted Additive Schwarz Preconditioner for General Sparse Linear Systems</EM>,
|
||||
SIAM Journal on Scientific Computing, 21 (2), 1999, 792-797.
|
||||
<P></P><DT><A NAME="apnum_07">7</A>
|
||||
<DD>
|
||||
P. D'Ambra, S. Filippone, D. di Serafino,
|
||||
<EM>On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners</EM>,
|
||||
Applied Numerical Mathematics, Elsevier Science,
|
||||
57 (11-12), 2007, 1181-1196.
|
||||
<P></P><DT><A NAME="MLD2P4_TOMS">8</A>
|
||||
<DD>
|
||||
P. D'Ambra, D. di Serafino, S. Filippone,
|
||||
<SPAN CLASS="textit">MLD2P4: a Package of Parallel Multilevel
|
||||
Algebraic Domain Decomposition Preconditioners
|
||||
in Fortran 95</SPAN>, ACM Trans. Math. Softw., 37(3), 2010, art. 30.
|
||||
<P></P><DT><A NAME="UMFPACK">9</A>
|
||||
<DD>
|
||||
T. A. Davis,
|
||||
<EM>Algorithm 832: UMFPACK - an Unsymmetric-pattern Multifrontal
|
||||
Method with a Column Pre-ordering Strategy</EM>,
|
||||
ACM Transactions on Mathematical Software, 30, 2004, 196-199.
|
||||
(See also <TT>http://www.cise.ufl.edu/~davis/</TT>)
|
||||
<P></P><DT><A NAME="SUPERLU">10</A>
|
||||
<DD>
|
||||
J. W. Demmel, S. C. Eisenstat, J. R. Gilbert, X. S. Li, J. W. H. Liu,
|
||||
<EM>A supernodal approach to sparse partial pivoting</EM>,
|
||||
SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 720-755.
|
||||
<P></P><DT><A NAME="blas3">11</A>
|
||||
<DD>
|
||||
J. J. Dongarra, J. Du Croz, I. S. Duff, S. Hammarling,
|
||||
<SPAN CLASS="textit">A set of Level 3 Basic Linear Algebra Subprograms</SPAN>,
|
||||
ACM Transactions on Mathematical Software, 16 (1) 1990, 1-17.
|
||||
<P></P><DT><A NAME="blas2">12</A>
|
||||
<DD>
|
||||
J. J. Dongarra, J. Du Croz, S. Hammarling, R. J. Hanson,
|
||||
<SPAN CLASS="textit">An extended set of FORTRAN Basic Linear Algebra Subprograms</SPAN>,
|
||||
ACM Transactions on Mathematical Software, 14 (1) 1988, 1-17.
|
||||
<P></P><DT><A NAME="PSBLASGUIDE">13</A>
|
||||
<DD>
|
||||
S. Filippone, A. Buttari,
|
||||
<EM>PSBLAS 3.5.0 User's Guide. A Reference Guide for the Parallel Sparse BLAS Library</EM>, 2012,
|
||||
available from <TT>https://github.com/sfilippone/psblas3/tree/master/docs</TT>.
|
||||
<P></P><DT><A NAME="PSBLAS3">14</A>
|
||||
<DD>
|
||||
S. Filippone, A. Buttari,
|
||||
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>.
|
||||
ACM Transactions on on Mathematical Software, 38 (4), 2012, art. 23.
|
||||
<P></P><DT><A NAME="psblas_00">15</A>
|
||||
<DD>
|
||||
S. Filippone, M. Colajanni,
|
||||
<EM>PSBLAS: A Library for Parallel Linear Algebra
|
||||
Computation on Sparse Matrices</EM>,
|
||||
ACM Transactions on Mathematical Software, 26 (4), 2000, 527-550.
|
||||
<P></P><DT><A NAME="MPI2">16</A>
|
||||
<DD>
|
||||
W. Gropp, S. Huss-Lederman, A. Lumsdaine, E. Lusk, B. Nitzberg, W. Saphir, M. Snir,
|
||||
<EM>MPI: The Complete Reference. Volume 2 - The MPI-2 Extensions</EM>,
|
||||
MIT Press, 1998.
|
||||
<P></P><DT><A NAME="blas1">17</A>
|
||||
<DD>
|
||||
C. L. Lawson, R. J. Hanson, D. Kincaid, F. T. Krogh,
|
||||
<SPAN CLASS="textit">Basic Linear Algebra Subprograms for FORTRAN usage</SPAN>,
|
||||
ACM Transactions on Mathematical Software, 5 (3), 1979, 308-323.
|
||||
<P></P><DT><A NAME="SUPERLUDIST">18</A>
|
||||
<DD>
|
||||
X. S. Li, J. W. Demmel,
|
||||
<EM>SuperLU_DIST: A Scalable Distributed-memory
|
||||
Sparse Direct Solver for Unsymmetric Linear Systems</EM>,
|
||||
ACM Transactions on Mathematical Software, 29 (2), 2003, 110-140.
|
||||
<P></P><DT><A NAME="Notay2008">19</A>
|
||||
<DD>
|
||||
Y. Notay, P. S. Vassilevski,
|
||||
<EM>Recursive Krylov-based multigrid cycles</EM>,
|
||||
Numerical Linear Algebra with Applications, 15 (5), 2008, 473-487.
|
||||
<P></P><DT><A NAME="Saad_book">20</A>
|
||||
<DD>
|
||||
Y. Saad,
|
||||
<EM>Iterative methods for sparse linear systems</EM>, 2nd edition, SIAM, 2003.
|
||||
<P></P><DT><A NAME="dd2_96">21</A>
|
||||
<DD>
|
||||
B. Smith, P. Bjorstad, W. Gropp,
|
||||
<EM>Domain Decomposition: Parallel Multilevel Methods for Elliptic
|
||||
Partial Differential Equations</EM>,
|
||||
Cambridge University Press, 1996.
|
||||
<P></P><DT><A NAME="MPI1">22</A>
|
||||
<DD>
|
||||
M. Snir, S. Otto, S. Huss-Lederman, D. Walker, J. Dongarra,
|
||||
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition,
|
||||
MIT Press, 1998.
|
||||
<P></P><DT><A NAME="Stuben_01">23</A>
|
||||
<DD>
|
||||
K. Stüben,
|
||||
<EM>An Introduction to Algebraic Multigrid</EM>,
|
||||
in A. Schüller, U. Trottenberg, C. Oosterlee, Multigrid,
|
||||
Academic Press, 2001.
|
||||
<P></P><DT><A NAME="TUMINARO_TONG">24</A>
|
||||
<DD>
|
||||
R. S. Tuminaro, C. Tong,
|
||||
<EM>Parallel Smoothed Aggregation Multigrid: Aggregation Strategies on Massively Parallel Machines</EM>, in J. Donnelley, editor, Proceedings of SuperComputing 2000, Dallas, 2000.
|
||||
<P></P><DT><A NAME="VANEK_MANDEL_BREZINA">25</A>
|
||||
<DD>
|
||||
P. Vanek, J. Mandel, M. Brezina,
|
||||
<EM>Algebraic Multigrid by Smoothed Aggregation for Second and Fourth Order Elliptic Problems</EM>,
|
||||
Computing, 56 (3) 1996, 179-196.
|
||||
|
||||
<P>
|
||||
</DL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,67 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>About this document ...</TITLE>
|
||||
<META NAME="description" CONTENT="About this document ...">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="previous" HREF="node36.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png">
|
||||
<A NAME="tex2html543"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html539"
|
||||
HREF="node36.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html545"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Up:</B> <A NAME="tex2html544"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html540"
|
||||
HREF="node36.html">Bibliography</A>
|
||||
<B> <A NAME="tex2html546"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000130000000000000000">
|
||||
About this document ...</A>
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG><P>
|
||||
This document was generated using the
|
||||
<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2017.2 (Released Jan 23, 2017)
|
||||
<P>
|
||||
Copyright © 1993, 1994, 1995, 1996,
|
||||
Nikos Drakos,
|
||||
Computer Based Learning Unit, University of Leeds.
|
||||
<BR>
|
||||
Copyright © 1997, 1998, 1999,
|
||||
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
|
||||
Mathematics Department, Macquarie University, Sydney.
|
||||
<P>
|
||||
The command line arguments were: <BR>
|
||||
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
|
||||
<P>
|
||||
The translation was initiated on 2018-01-11<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+31
-34
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Code Distribution</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,57 +21,58 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html129"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html136"
|
||||
HREF="node5.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html125"
|
||||
<A NAME="tex2html132"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html119"
|
||||
<A NAME="tex2html126"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html127"
|
||||
<A NAME="tex2html134"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html130"
|
||||
<B> Next:</B> <A NAME="tex2html137"
|
||||
HREF="node5.html">Contributors</A>
|
||||
<B> Up:</B> <A NAME="tex2html126"
|
||||
<B> Up:</B> <A NAME="tex2html133"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html120"
|
||||
<B> Previous:</B> <A NAME="tex2html127"
|
||||
HREF="node3.html">General Overview</A>
|
||||
<B> <A NAME="tex2html128"
|
||||
<B> <A NAME="tex2html135"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00040000000000000000"></A><A NAME="sec:distribution"></A>
|
||||
<BR>
|
||||
Code Distribution
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
MLD2P4 is available from the web site
|
||||
</FONT></FONT></FONT>
|
||||
<BLOCKQUOTE><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><TT>https://github.com/sfilippone/mld2p4-2</TT>
|
||||
</FONT></FONT></FONT></BLOCKQUOTE><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</BIG></BIG></BIG>
|
||||
<BLOCKQUOTE><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><TT>https://github.com/sfilippone/mld2p4-2</TT>
|
||||
</BIG></BIG></BIG></BLOCKQUOTE><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
where contact points for further information can be also found.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The software is available under a modified BSD license, as specified
|
||||
in Appendix <A HREF="node29.html#sec:license">A</A>; please note that some of the optional
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The software is available under a modified BSD license, as specified
|
||||
in Appendix <A HREF="node35.html#sec:license">A</A>; please note that some of the optional
|
||||
third party libraries may be licensed under a different and more
|
||||
stringent license, most notably the GPL, and this should be taken into
|
||||
account when treating derived works.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The library defines a version string with the
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The library defines a version string with the
|
||||
constant
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
\verb|mld_version_string_|
|
||||
@@ -88,17 +85,17 @@ constant
|
||||
ALT="\begin{displaymath}\verb\vert mld_version_string_\vert\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
whose current value is <code>2.1.0</code>.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html131"
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html138"
|
||||
HREF="node5.html">Contributors</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
|
||||
+22
-25
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Contributors</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -24,49 +20,50 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html140"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html147"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html136"
|
||||
<A NAME="tex2html143"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html132"
|
||||
<A NAME="tex2html139"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html138"
|
||||
<A NAME="tex2html145"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html141"
|
||||
<B> Next:</B> <A NAME="tex2html148"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> Up:</B> <A NAME="tex2html137"
|
||||
<B> Up:</B> <A NAME="tex2html144"
|
||||
HREF="node4.html">Code Distribution</A>
|
||||
<B> Previous:</B> <A NAME="tex2html133"
|
||||
<B> Previous:</B> <A NAME="tex2html140"
|
||||
HREF="node4.html">Code Distribution</A>
|
||||
<B> <A NAME="tex2html139"
|
||||
<B> <A NAME="tex2html146"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00041000000000000000">
|
||||
Contributors</A>
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Contributors to version 2:
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<UL>
|
||||
<LI>Salvatore Filippone, Cranfield University, UK;
|
||||
</LI>
|
||||
<LI>Pasqua D'Ambra, IAC-CNR, Naples, IT;
|
||||
</LI>
|
||||
<LI>Daniela di Serafino, University of Campania ``L. Vanvitelli'', Caserta, IT;
|
||||
<LI>Daniela di Serafino, University of Campania “L. Vanvitelli”, Caserta, IT;
|
||||
</LI>
|
||||
<LI>Ambra Abdullahi Hassan, University of Rome ``Tor Vergata'', IT.
|
||||
<LI>Ambra Abdullahi Hassan, University of Rome “Tor Vergata”, IT.
|
||||
</LI>
|
||||
</UL><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</UL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Contributors to version 1:
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<UL>
|
||||
<LI>Salvatore Filippone;
|
||||
</LI>
|
||||
@@ -76,8 +73,8 @@ Contributors to version 1:
|
||||
</LI>
|
||||
<LI>Alfredo Buttari, CNRS-IRIT, Toulouse, F.
|
||||
</LI>
|
||||
</UL><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</FONT></FONT></FONT>
|
||||
</UL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
</BIG></BIG></BIG>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+39
-41
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Configuring and Building MLD2P4</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,45 +21,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html152"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html159"
|
||||
HREF="node7.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html148"
|
||||
<A NAME="tex2html155"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html142"
|
||||
<A NAME="tex2html149"
|
||||
HREF="node5.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html150"
|
||||
<A NAME="tex2html157"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html153"
|
||||
<B> Next:</B> <A NAME="tex2html160"
|
||||
HREF="node7.html">Prerequisites</A>
|
||||
<B> Up:</B> <A NAME="tex2html149"
|
||||
<B> Up:</B> <A NAME="tex2html156"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html143"
|
||||
<B> Previous:</B> <A NAME="tex2html150"
|
||||
HREF="node5.html">Contributors</A>
|
||||
<B> <A NAME="tex2html151"
|
||||
<B> <A NAME="tex2html158"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00050000000000000000"></A><A NAME="sec:building"></A>
|
||||
<BR>
|
||||
Configuring and Building MLD2P4
|
||||
</H1><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</H1><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
|
||||
In order to build MLD2P4 it is necessary to set up a Makefile with appropriate
|
||||
system-dependent variables; this is done by means of the <code>configure</code>
|
||||
script. The distribution also includes the autoconf and automake
|
||||
sources employed to generate the script, but usually this is not needed
|
||||
to build the software.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">MLD2P4 is implemented almost entirely in Fortran 2003, with some
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">MLD2P4 is implemented almost entirely in Fortran 2003, with some
|
||||
interfaces to external libraries in C; the Fortran compiler
|
||||
must support the Fortran 2003 standard plus the extension <code>MOLD=</code>
|
||||
feature, which enhances the usability of <code>ALLOCATE</code>.
|
||||
@@ -72,58 +69,59 @@ supported by the GNU Fortran compiler, for which we
|
||||
recommend to use at least version 4.8.
|
||||
The software defines data types and interfaces for
|
||||
real and complex data, in both single and double precision.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">Building MLD2P4 requires some base libraries (see Section <A HREF="node7.html#sec:prerequisites">3.1</A>);
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Building MLD2P4 requires some base libraries (see Section <A HREF="node7.html#sec:prerequisites">3.1</A>);
|
||||
interfaces to optional third-party libraries, which extend the functionalities of MLD2P4
|
||||
(see Section <A HREF="node8.html#sec:third-party">3.2</A>), are also available. Many Linux distributions
|
||||
(e.g., Ubuntu, Fedora, CentOS) provide precompiled packages for the prerequisite and
|
||||
optional software. In many cases these packages are split between a runtime part and a
|
||||
``developer'' part; in order to build MLD2P4 you need both. A description of the base and
|
||||
“developer” part; in order to build MLD2P4 you need both. A description of the base and
|
||||
optional software used by MLD2P4 is given in the next sections.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html154"
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html161"
|
||||
HREF="node7.html">Prerequisites</A>
|
||||
<LI><A NAME="tex2html155"
|
||||
<LI><A NAME="tex2html162"
|
||||
HREF="node8.html">Optional third party libraries</A>
|
||||
<LI><A NAME="tex2html156"
|
||||
<LI><A NAME="tex2html163"
|
||||
HREF="node9.html">Configuration options</A>
|
||||
<LI><A NAME="tex2html157"
|
||||
<LI><A NAME="tex2html164"
|
||||
HREF="node10.html">Bug reporting</A>
|
||||
<LI><A NAME="tex2html158"
|
||||
<LI><A NAME="tex2html165"
|
||||
HREF="node11.html">Example and test programs</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html152"
|
||||
<A NAME="tex2html159"
|
||||
HREF="node7.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html148"
|
||||
<A NAME="tex2html155"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html142"
|
||||
<A NAME="tex2html149"
|
||||
HREF="node5.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html150"
|
||||
<A NAME="tex2html157"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html153"
|
||||
<B> Next:</B> <A NAME="tex2html160"
|
||||
HREF="node7.html">Prerequisites</A>
|
||||
<B> Up:</B> <A NAME="tex2html149"
|
||||
<B> Up:</B> <A NAME="tex2html156"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html143"
|
||||
<B> Previous:</B> <A NAME="tex2html150"
|
||||
HREF="node5.html">Contributors</A>
|
||||
<B> <A NAME="tex2html151"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html158"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+37
-39
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Prerequisites</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,44 +21,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html169"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html176"
|
||||
HREF="node8.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html165"
|
||||
<A NAME="tex2html172"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html159"
|
||||
<A NAME="tex2html166"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html167"
|
||||
<A NAME="tex2html174"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html170"
|
||||
<B> Next:</B> <A NAME="tex2html177"
|
||||
HREF="node8.html">Optional third party libraries</A>
|
||||
<B> Up:</B> <A NAME="tex2html166"
|
||||
<B> Up:</B> <A NAME="tex2html173"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> Previous:</B> <A NAME="tex2html160"
|
||||
<B> Previous:</B> <A NAME="tex2html167"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> <A NAME="tex2html168"
|
||||
<B> <A NAME="tex2html175"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00051000000000000000"></A><A NAME="sec:prerequisites"></A>
|
||||
<BR>
|
||||
Prerequisites
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">The following base libraries are needed:
|
||||
</FONT></FONT></FONT><DL>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The following base libraries are needed:
|
||||
</BIG></BIG></BIG><DL>
|
||||
<DT><STRONG>BLAS</STRONG></DT>
|
||||
<DD>[<A
|
||||
HREF="node30.html#blas3">11</A>,<A
|
||||
HREF="node30.html#blas2">12</A>,<A
|
||||
HREF="node30.html#blas1">17</A>] Many vendors provide optimized versions
|
||||
HREF="node36.html#blas3">11</A>,<A
|
||||
HREF="node36.html#blas2">12</A>,<A
|
||||
HREF="node36.html#blas1">17</A>] Many vendors provide optimized versions
|
||||
of BLAS; if no vendor version is
|
||||
available for a given platform, the ATLAS software
|
||||
(<TT><A NAME="tex2html1"
|
||||
@@ -85,50 +82,51 @@ in the make.inc file of the LAPACK library.
|
||||
</DD>
|
||||
<DT><STRONG>MPI</STRONG></DT>
|
||||
<DD>[<A
|
||||
HREF="node30.html#MPI2">16</A>,<A
|
||||
HREF="node30.html#MPI1">22</A>] A version of MPI is available on most
|
||||
HREF="node36.html#MPI2">16</A>,<A
|
||||
HREF="node36.html#MPI1">22</A>] A version of MPI is available on most
|
||||
high-performance computing systems.
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>PSBLAS</STRONG></DT>
|
||||
<DD>[<A
|
||||
HREF="node30.html#PSBLASGUIDE">13</A>,<A
|
||||
HREF="node30.html#psblas_00">15</A>] Parallel Sparse BLAS (PSBLAS) is
|
||||
HREF="node36.html#PSBLASGUIDE">13</A>,<A
|
||||
HREF="node36.html#psblas_00">15</A>] Parallel Sparse BLAS (PSBLAS) is
|
||||
available from <TT><A NAME="tex2html4"
|
||||
HREF="github.com/sfilippone/psblas3">github.com/sfilippone/psblas3</A></TT>; version
|
||||
3.5.0 (or later) is required. Indeed, all the prerequisites
|
||||
listed so far are also prerequisites of PSBLAS.
|
||||
</DD>
|
||||
</DL><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</DL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Please note that the four previous libraries must have Fortran
|
||||
interfaces compatible with MLD2P4;
|
||||
usually this means that they should all be built with the same
|
||||
compiler as MLD2P4.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html169"
|
||||
<A NAME="tex2html176"
|
||||
HREF="node8.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html165"
|
||||
<A NAME="tex2html172"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html159"
|
||||
<A NAME="tex2html166"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html167"
|
||||
<A NAME="tex2html174"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html170"
|
||||
<B> Next:</B> <A NAME="tex2html177"
|
||||
HREF="node8.html">Optional third party libraries</A>
|
||||
<B> Up:</B> <A NAME="tex2html166"
|
||||
<B> Up:</B> <A NAME="tex2html173"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> Previous:</B> <A NAME="tex2html160"
|
||||
<B> Previous:</B> <A NAME="tex2html167"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> <A NAME="tex2html168"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html175"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+34
-36
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Optional third party libraries</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,46 +21,47 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html181"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html188"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html177"
|
||||
<A NAME="tex2html184"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html171"
|
||||
<A NAME="tex2html178"
|
||||
HREF="node7.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html179"
|
||||
<A NAME="tex2html186"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html182"
|
||||
<B> Next:</B> <A NAME="tex2html189"
|
||||
HREF="node9.html">Configuration options</A>
|
||||
<B> Up:</B> <A NAME="tex2html178"
|
||||
<B> Up:</B> <A NAME="tex2html185"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> Previous:</B> <A NAME="tex2html172"
|
||||
<B> Previous:</B> <A NAME="tex2html179"
|
||||
HREF="node7.html">Prerequisites</A>
|
||||
<B> <A NAME="tex2html180"
|
||||
<B> <A NAME="tex2html187"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00052000000000000000"></A><A NAME="sec:third-party"></A>
|
||||
<BR>
|
||||
Optional third party libraries
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">We provide interfaces to the following third-party software libraries;
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">We provide interfaces to the following third-party software libraries;
|
||||
note that these are optional, but if you enable them some defaults
|
||||
for multilevel preconditioners may change to reflect their presence.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><DL>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><DL>
|
||||
<DT><STRONG>UMFPACK</STRONG></DT>
|
||||
<DD>[<A
|
||||
HREF="node30.html#UMFPACK">9</A>]
|
||||
HREF="node36.html#UMFPACK">9</A>]
|
||||
A sparse LU factorization package included in the SuiteSparse library, available from
|
||||
<TT><A NAME="tex2html5"
|
||||
HREF="faculty.cse.tamu.edu/davis/suitesparse.html">faculty.cse.tamu.edu/davis/suitesparse.html</A></TT>;
|
||||
@@ -75,7 +72,7 @@ for multilevel preconditioners may change to reflect their presence.
|
||||
</DD>
|
||||
<DT><STRONG>MUMPS</STRONG></DT>
|
||||
<DD>[<A
|
||||
HREF="node30.html#MUMPS">1</A>]
|
||||
HREF="node36.html#MUMPS">1</A>]
|
||||
A sparse LU factorization package available from <TT><A NAME="tex2html6"
|
||||
HREF="mumps.enseeiht.fr">mumps.enseeiht.fr</A></TT>;
|
||||
it provides sequential and parallel factorizations and triangular system solution
|
||||
@@ -84,7 +81,7 @@ for multilevel preconditioners may change to reflect their presence.
|
||||
</DD>
|
||||
<DT><STRONG>SuperLU</STRONG></DT>
|
||||
<DD>[<A
|
||||
HREF="node30.html#SUPERLU">10</A>]
|
||||
HREF="node36.html#SUPERLU">10</A>]
|
||||
A sparse LU factorization package available from
|
||||
<TT><A NAME="tex2html7"
|
||||
HREF="crd.lbl.gov/~xiaoye/SuperLU/">crd.lbl.gov/~xiaoye/SuperLU/</A></TT>; it provides sequential
|
||||
@@ -95,7 +92,7 @@ for multilevel preconditioners may change to reflect their presence.
|
||||
</DD>
|
||||
<DT><STRONG>SuperLU_Dist</STRONG></DT>
|
||||
<DD>[<A
|
||||
HREF="node30.html#SUPERLUDIST">18</A>]
|
||||
HREF="node36.html#SUPERLUDIST">18</A>]
|
||||
A sparse LU factorization package available
|
||||
from the same site as SuperLU; it provides parallel factorization and
|
||||
triangular system solution for double precision real and complex data.
|
||||
@@ -107,31 +104,32 @@ for multilevel preconditioners may change to reflect their presence.
|
||||
<TT><A NAME="tex2html8"
|
||||
HREF="glaros.dtc.umn.edu/gkhome/metis/parmetis/overview">glaros.dtc.umn.edu/gkhome/metis/parmetis/overview</A></TT>.
|
||||
</DD>
|
||||
</DL><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</DL><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html181"
|
||||
<A NAME="tex2html188"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html177"
|
||||
<A NAME="tex2html184"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html171"
|
||||
<A NAME="tex2html178"
|
||||
HREF="node7.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html179"
|
||||
<A NAME="tex2html186"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html182"
|
||||
<B> Next:</B> <A NAME="tex2html189"
|
||||
HREF="node9.html">Configuration options</A>
|
||||
<B> Up:</B> <A NAME="tex2html178"
|
||||
<B> Up:</B> <A NAME="tex2html185"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> Previous:</B> <A NAME="tex2html172"
|
||||
<B> Previous:</B> <A NAME="tex2html179"
|
||||
HREF="node7.html">Prerequisites</A>
|
||||
<B> <A NAME="tex2html180"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html187"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+43
-45
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Configuration options</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -25,51 +21,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html193"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html200"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html189"
|
||||
<A NAME="tex2html196"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html183"
|
||||
<A NAME="tex2html190"
|
||||
HREF="node8.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html191"
|
||||
<A NAME="tex2html198"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html194"
|
||||
<B> Next:</B> <A NAME="tex2html201"
|
||||
HREF="node10.html">Bug reporting</A>
|
||||
<B> Up:</B> <A NAME="tex2html190"
|
||||
<B> Up:</B> <A NAME="tex2html197"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> Previous:</B> <A NAME="tex2html184"
|
||||
<B> Previous:</B> <A NAME="tex2html191"
|
||||
HREF="node8.html">Optional third party libraries</A>
|
||||
<B> <A NAME="tex2html192"
|
||||
<B> <A NAME="tex2html199"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00053000000000000000">
|
||||
Configuration options</A>
|
||||
</H2><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">In order to build MLD2P4, the first step is to use the <code>configure</code> script
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">In order to build MLD2P4, the first step is to use the <code>configure</code> script
|
||||
in the main directory to generate the necessary makefile.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">As a minimal example consider the following:
|
||||
</FONT></FONT></FONT><PRE>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">As a minimal example consider the following:
|
||||
</BIG></BIG></BIG><PRE>
|
||||
./configure --with-psblas=PSB-INSTALL-DIR
|
||||
</PRE><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</PRE><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
which assumes that the various MPI compilers and support libraries are
|
||||
available in the standard directories on the system, and specifies
|
||||
only the PSBLAS install directory (note that the latter directory must
|
||||
be specified with an <EM>absolute</EM> path).
|
||||
The full set of options may be looked at by issuing the command
|
||||
<code>./configure --help</code>, which produces:
|
||||
</FONT></FONT></FONT><PRE>
|
||||
</BIG></BIG></BIG><PRE>
|
||||
`configure' configures MLD2P4 2.1 to adapt to many kinds of systems.
|
||||
|
||||
Usage: ./configure [OPTION]... [VAR=VALUE]...
|
||||
@@ -226,61 +223,62 @@ Use these variables to override the choices made by `configure' or to help
|
||||
it to find libraries and programs with nonstandard names/locations.
|
||||
|
||||
Report bugs to <https://github.com/sfilippone/mld2p4-2/issues>.
|
||||
</PRE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
||||
</PRE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">For instance, if a user has built and installed PSBLAS 3.5 under the
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">For instance, if a user has built and installed PSBLAS 3.5 under the
|
||||
<code>/opt</code> directory and is
|
||||
using the SuiteSparse package (which includes UMFPACK), then MLD2P4
|
||||
might be configured with:
|
||||
</FONT></FONT></FONT><PRE>
|
||||
</BIG></BIG></BIG><PRE>
|
||||
./configure --with-psblas=/opt/psblas-3.5/ \
|
||||
--with-umfpackincdir=/usr/include/suitesparse/
|
||||
</PRE><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</PRE><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
Once the configure script has completed execution, it will have
|
||||
generated the file <code>Make.inc</code> which will then be used by all
|
||||
Makefiles in the directory tree; this file will be copied in the
|
||||
install directory under the name <code>Make.inc.MLD2P4</code>.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">To use the MUMPS solver package,
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">To use the MUMPS solver package,
|
||||
the user has to add the appropriate options to the configure script;
|
||||
by default we are looking for the libraries
|
||||
<code>-ldmumps -lsmumps</code> <code> -lzmumps -lcmumps -mumps_common -lpord</code>.
|
||||
MUMPS often uses additional packages such as ScaLAPACK, ParMETIS,
|
||||
SCOTCH, as well as enabling OpenMP; in such cases it is necessary to
|
||||
add linker options with the <code>--with-extra-libs</code> configure option.
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">To build the library the user will now enter
|
||||
</FONT></FONT></FONT><PRE>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">To build the library the user will now enter
|
||||
</BIG></BIG></BIG><PRE>
|
||||
make
|
||||
</PRE><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
</PRE><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
followed (optionally) by
|
||||
</FONT></FONT></FONT><PRE>
|
||||
</BIG></BIG></BIG><PRE>
|
||||
make install
|
||||
</PRE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
||||
</PRE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html193"
|
||||
<A NAME="tex2html200"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html189"
|
||||
<A NAME="tex2html196"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html183"
|
||||
<A NAME="tex2html190"
|
||||
HREF="node8.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html191"
|
||||
<A NAME="tex2html198"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html194"
|
||||
<B> Next:</B> <A NAME="tex2html201"
|
||||
HREF="node10.html">Bug reporting</A>
|
||||
<B> Up:</B> <A NAME="tex2html190"
|
||||
<B> Up:</B> <A NAME="tex2html197"
|
||||
HREF="node6.html">Configuring and Building MLD2P4</A>
|
||||
<B> Previous:</B> <A NAME="tex2html184"
|
||||
<B> Previous:</B> <A NAME="tex2html191"
|
||||
HREF="node8.html">Optional third party libraries</A>
|
||||
<B> <A NAME="tex2html192"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<B> <A NAME="tex2html199"
|
||||
HREF="node2.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
|
||||
+53
-42
@@ -1,10 +1,6 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2012 (1.2)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<!--Converted with LaTeX2HTML 2017.2 (Released Jan 23, 2017) -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>userhtml</TITLE>
|
||||
@@ -13,7 +9,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2017.2">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
@@ -22,7 +18,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html25"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
@@ -37,30 +34,30 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<B> <A NAME="tex2html24"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
<FONT SIZE="+2"><B>MLD2P4
|
||||
<BIG CLASS="XXLARGE"><B>MLD2P4
|
||||
<BR>
|
||||
<BR>
|
||||
User's and Reference Guide</B></FONT>
|
||||
<BR><I><FONT SIZE="+1">A guide for the MultiLevel Domain Decomposition
|
||||
User's and Reference Guide</B></BIG>
|
||||
<BR><SPAN CLASS="textit"><BIG CLASS="LARGE">A guide for the MultiLevel Domain Decomposition
|
||||
Parallel Preconditioners Package
|
||||
based on PSBLAS</FONT></I>
|
||||
based on PSBLAS</BIG></SPAN>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR><FONT SIZE="+1"><B>Pasqua D'Ambra</B></FONT>
|
||||
<BR><FONT SIZE="+1">IAC-CNR, Naples, Italy
|
||||
<BR><BIG CLASS="LARGE"><B>Pasqua D'Ambra</B></BIG>
|
||||
<BR><BIG CLASS="LARGE">IAC-CNR, Naples, Italy
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR><FONT SIZE="+1"><B>Daniela di Serafino</B></FONT>
|
||||
<BR><FONT SIZE="+1">University of Campania ``Luigi Vanvitelli'', Caserta, Italy
|
||||
<BR><BIG CLASS="LARGE"><B>Daniela di Serafino</B></BIG>
|
||||
<BR><BIG CLASS="LARGE">University of Campania “Luigi Vanvitelli”, Caserta, Italy
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR><FONT SIZE="+1"><B>Salvatore Filippone</B></FONT>
|
||||
<BR><FONT SIZE="+1">Cranfield University, Cranfield, United Kingdom
|
||||
<BR><BIG CLASS="LARGE"><B>Salvatore Filippone</B></BIG>
|
||||
<BR><BIG CLASS="LARGE">Cranfield University, Cranfield, United Kingdom
|
||||
<BR>
|
||||
<BR>
|
||||
<BR>
|
||||
@@ -78,18 +75,18 @@ July 31, 2017
|
||||
|
||||
<BR>
|
||||
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
|
||||
|
||||
</FONT></FONT></FONT>
|
||||
</BIG></BIG></BIG>
|
||||
<P>
|
||||
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT></FONT>
|
||||
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG></BIG>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"></A>
|
||||
|
||||
<UL>
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html27"
|
||||
HREF="node1.html">Abstract</A>
|
||||
<LI><A NAME="tex2html28"
|
||||
@@ -140,33 +137,47 @@ July 31, 2017
|
||||
HREF="node18.html">User Interface</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html45"
|
||||
HREF="node19.html">Subroutine init</A>
|
||||
HREF="node19.html">Method init</A>
|
||||
<LI><A NAME="tex2html46"
|
||||
HREF="node20.html">Subroutine set</A>
|
||||
HREF="node20.html">Method set</A>
|
||||
<LI><A NAME="tex2html47"
|
||||
HREF="node21.html">Subroutine build</A>
|
||||
HREF="node21.html">Method hierarchy_build</A>
|
||||
<LI><A NAME="tex2html48"
|
||||
HREF="node22.html">Subroutine hierarchy_build</A>
|
||||
HREF="node22.html">Method smoothers_build</A>
|
||||
<LI><A NAME="tex2html49"
|
||||
HREF="node23.html">Subroutine smoothers_build</A>
|
||||
HREF="node23.html">Method build</A>
|
||||
<LI><A NAME="tex2html50"
|
||||
HREF="node24.html">Subroutine apply</A>
|
||||
HREF="node24.html">Method apply</A>
|
||||
<LI><A NAME="tex2html51"
|
||||
HREF="node25.html">Subroutine free</A>
|
||||
HREF="node25.html">Method free</A>
|
||||
<LI><A NAME="tex2html52"
|
||||
HREF="node26.html">Subroutine descr</A>
|
||||
HREF="node26.html">Method descr</A>
|
||||
<LI><A NAME="tex2html53"
|
||||
HREF="node27.html">Auxiliary Methods</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html54"
|
||||
HREF="node28.html">Method: dump</A>
|
||||
<LI><A NAME="tex2html55"
|
||||
HREF="node29.html">Method: clone</A>
|
||||
<LI><A NAME="tex2html56"
|
||||
HREF="node30.html">Method: sizeof</A>
|
||||
<LI><A NAME="tex2html57"
|
||||
HREF="node31.html">Method: allocate_wrk</A>
|
||||
<LI><A NAME="tex2html58"
|
||||
HREF="node32.html">Method: free_wrk</A>
|
||||
</UL>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html53"
|
||||
HREF="node27.html">Adding new smoother and solver objects to MLD2P4</A>
|
||||
<LI><A NAME="tex2html54"
|
||||
HREF="node28.html">Error Handling</A>
|
||||
<LI><A NAME="tex2html55"
|
||||
HREF="node29.html">License</A>
|
||||
<LI><A NAME="tex2html56"
|
||||
HREF="node30.html">Bibliography</A>
|
||||
<LI><A NAME="tex2html57"
|
||||
HREF="node31.html">About this document ...</A>
|
||||
<LI><A NAME="tex2html59"
|
||||
HREF="node33.html">Adding new smoother and solver objects to MLD2P4</A>
|
||||
<LI><A NAME="tex2html60"
|
||||
HREF="node34.html">Error Handling</A>
|
||||
<LI><A NAME="tex2html61"
|
||||
HREF="node35.html">License</A>
|
||||
<LI><A NAME="tex2html62"
|
||||
HREF="node36.html">Bibliography</A>
|
||||
<LI><A NAME="tex2html63"
|
||||
HREF="node37.html">About this document ...</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
+3786
-3390
File diff suppressed because it is too large
Load Diff
@@ -48,8 +48,8 @@ by the routine \verb|smoothers_build|.
|
||||
If the selected preconditioner is one-level, it is built in a single step,
|
||||
performed by the routine \verb|bld|.
|
||||
\item \emph{Apply the preconditioner at each iteration of a Krylov solver.}
|
||||
This is performed by the routine \verb|aply|. When using the PSBLAS Krylov solvers,
|
||||
this step is completely transparent to the user, since \verb|aply| is called
|
||||
This is performed by the method \verb|apply|. When using the PSBLAS Krylov solvers,
|
||||
this step is completely transparent to the user, since \verb|apply| is called
|
||||
by the PSBLAS routine implementing the Krylov solver (\verb|psb_krylov|).
|
||||
\item \emph{Free the preconditioner data structure}. This is performed by
|
||||
the routine \verb|free|. This step is complementary to step 1 and should
|
||||
@@ -66,7 +66,7 @@ Examples showing the basic use of MLD2P4 are reported in Section~\ref{sec:exampl
|
||||
\begin{tabular}{|l|p{1.8cm}|p{8.2cm}|}
|
||||
\hline
|
||||
\textsc{type} & \textsc{string} & \textsc{default preconditioner} \\ \hline
|
||||
No preconditioner &\verb|'NOPREC'|& Considered only to use the PSBLAS
|
||||
No preconditioner &\verb|'NONE'|& Considered to use the PSBLAS
|
||||
Krylov solvers with no preconditioner. \\ \hline
|
||||
Diagonal & \verb|'DIAG'| or \verb|'JACOBI'| & Diagonal preconditioner.
|
||||
For any zero diagonal entry of the matrix to be preconditioned,
|
||||
|
||||
+235
-75
@@ -2,19 +2,20 @@
|
||||
\markboth{\textsc{MLD2P4 User's and Reference Guide}}
|
||||
{\textsc{\ref{sec:userinterface} User Interface}}
|
||||
|
||||
The basic user interface of MLD2P4 consists of eight routines. The six
|
||||
routines \verb|init|, \verb|set|,
|
||||
\verb|hierarchy_build|, \verb|smoothers_build|,
|
||||
\verb|bld|, and \verb|apply| encapsulate all the
|
||||
functionalities for the setup and the application of any multilevel and one-level
|
||||
preconditioner implemented in the package.
|
||||
The routine \verb|free| deallocates the preconditioner data structure, while
|
||||
The basic user interface of MLD2P4 consists of eight methods. The six
|
||||
methods \verb|init|, \verb|set|, \verb|build|,
|
||||
\verb|hierarchy_build|, \verb|smoothers_build| and \verb|apply|
|
||||
encapsulate all the functionalities for the setup and the application
|
||||
of any multilevel and one-level preconditioner implemented in the
|
||||
package.
|
||||
The method \verb|free| deallocates the preconditioner data structure, while
|
||||
\verb|descr| prints a description of the preconditioner setup by the user.
|
||||
For backward compatibility, methods are also accessible as
|
||||
stand-alone subroutines.
|
||||
|
||||
All the routines are available as methods of the preconditioner object.
|
||||
For each routine, the same user interface is overloaded with
|
||||
For each method, the same user interface is overloaded with
|
||||
respect to the real/ complex case and the single/double precision;
|
||||
arguments with appropriate data types must be passed to the routine,
|
||||
arguments with appropriate data types must be passed to the method,
|
||||
i.e.,
|
||||
\begin{itemize}
|
||||
\item the sparse matrix data structure, containing the matrix to be
|
||||
@@ -35,18 +36,18 @@ i.e.,
|
||||
according to the precision of the sparse matrix and preconditioner
|
||||
data structures (see Section~\ref{sec:precset}).
|
||||
\end{itemize}
|
||||
A description of each routine is given in the remainder of this section.
|
||||
A description of each method is given in the remainder of this section.
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsection{Subroutine init\label{sec:precinit}}
|
||||
\subsection{Method init\label{sec:precinit}}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%init(ptype,info)|
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
This routine allocates and initializes the preconditioner
|
||||
This method allocates and initializes the preconditioner
|
||||
\verb|p|, according to the preconditioner type chosen by the user.
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
@@ -71,7 +72,7 @@ This routine allocates and initializes the preconditioner
|
||||
\end{tabular}
|
||||
|
||||
\vskip1.5\baselineskip
|
||||
For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
|
||||
\begin{center}
|
||||
@@ -81,14 +82,14 @@ as follows:
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsection{Subroutine set\label{sec:precset}}
|
||||
\subsection{Method set\label{sec:precset}}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%set(what,val,info [,ilev, ilmax, pos])|
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
This routine sets the parameters defining the preconditioner \verb|p|. More
|
||||
This method sets the parameters defining the preconditioner \verb|p|. More
|
||||
precisely, the parameter identified by \verb|what| is assigned the value
|
||||
contained in \verb|val|.
|
||||
|
||||
@@ -139,7 +140,7 @@ contained in \verb|val|.
|
||||
\end{tabular}
|
||||
|
||||
\vskip1.5\baselineskip
|
||||
For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
|
||||
\begin{center}
|
||||
@@ -623,60 +624,19 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
(continued).\label{tab:p_smoother_1}}
|
||||
\esideways
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsection{Subroutine build\label{sec:precbld}}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%build(a,desc_a,info)|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
This routine builds the one-level preconditioner \verb|p| according to the requirements
|
||||
made by the user through the routines \verb|init| and \verb|set|
|
||||
(see Sections~\ref{sec:hier_bld} and~\ref{sec:smooth_bld} for multilevel preconditioners).
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
|
||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||
\verb|a| & \verb|type(psb_|\emph{x}\verb|spmat_type), intent(in)|. \\
|
||||
& The sparse matrix structure containing the local part of the
|
||||
matrix to be preconditioned. Note that \emph{x} must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.
|
||||
See the PSBLAS User's Guide for details \cite{PSBLASGUIDE}.\\
|
||||
\verb|desc_a| & \verb|type(psb_desc_type), intent(in)|. \\
|
||||
& The communication descriptor of \verb|a|. See the PSBLAS User's Guide for
|
||||
details \cite{PSBLASGUIDE}.\\
|
||||
%\verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\
|
||||
% & The preconditioner data structure. Note that \emph{x} must be chosen according
|
||||
% to the real/complex, single/double precision version of MLD2P4 under use.\\
|
||||
\verb|info| & \verb|integer, intent(out)|.\\
|
||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||
\end{tabular}
|
||||
|
||||
\vskip1.5\baselineskip
|
||||
For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
as follows:
|
||||
|
||||
\begin{center}
|
||||
\verb|call mld_precbld(p,what,val,info)|
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
In this case, the routine can be used to build multilevel preconditioners too.
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsection{Subroutine hierarchy\_build\label{sec:hier_bld}}
|
||||
\subsection{Method hierarchy\_build\label{sec:hier_bld}}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%hierarchy_build(a,desc_a,info)|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
This routine builds the hierarchy of matrices and restriction/prolongation
|
||||
This method builds the hierarchy of matrices and restriction/prolongation
|
||||
operators for the multilevel preconditioner \verb|p|, according to the requirements
|
||||
made by the user through the routines \verb|init| and \verb|set|.
|
||||
made by the user through the methods \verb|init| and \verb|set|.
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
|
||||
@@ -700,17 +660,17 @@ single/double precision version of MLD2P4 under use.
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsection{Subroutine smoothers\_build\label{sec:smooth_bld}}
|
||||
\subsection{Method smoothers\_build\label{sec:smooth_bld}}
|
||||
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%smoothers_build(a,desc_a,p,info)|\\
|
||||
\verb|call p%smoothers_build(a,desc_a,p,info[,amold,vmold,imold])|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
This routine builds the smoothers and the coarsest-level solvers for the
|
||||
This method builds the smoothers and the coarsest-level solvers for the
|
||||
multilevel preconditioner \verb|p|, according to the requirements made by
|
||||
the user through the routines \verb|init| and \verb|set|, and based on the aggregation
|
||||
the user through the methods \verb|init| and \verb|set|, and based on the aggregation
|
||||
hierarchy produced by a previous call to \verb|hierarchy_build|
|
||||
(see Section~\ref{sec:hier_bld}).
|
||||
|
||||
@@ -730,22 +690,92 @@ hierarchy produced by a previous call to \verb|hierarchy_build|
|
||||
% to the real/complex, single/double precision version of MLD2P4 under use.\\
|
||||
\verb|info| & \verb|integer, intent(out)|.\\
|
||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||
\verb|amold| & \verb|class(psb_|\emph{x}\verb|_base_sparse_mat), intent(in), optional|. \\
|
||||
& The desired dynamic type for internal matrix
|
||||
components; this allows e.g. running on GPUs; it needs not be the
|
||||
same on all processes. See the PSBLAS User's Guide for
|
||||
details \cite{PSBLASGUIDE}. \\
|
||||
\verb|vmold| & \verb|class(psb_|\emph{x}\verb|_base_vect_type), intent(in), optional|. \\
|
||||
& The desired dynamic type for internal vector
|
||||
components; this allows e.g. running on GPUs. \\
|
||||
\verb|imold| & \verb|class(psb_i_base_vect_type), intent(in), optional|. \\
|
||||
& The desired dynamic type for internal integer vector
|
||||
components; this allows e.g. running on GPUs. \\
|
||||
\end{tabular}
|
||||
|
||||
\clearpage
|
||||
\subsection{Subroutine apply\label{sec:precapply}}
|
||||
|
||||
\subsection{Method build\label{sec:precbld}}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%build(a,desc_a,info[,amold,vmold,imold])|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
This method builds the preconditioner \verb|p| according to the requirements
|
||||
made by the user through the methods \verb|init| and \verb|set|
|
||||
(see Sections~\ref{sec:hier_bld} and~\ref{sec:smooth_bld} for
|
||||
multilevel preconditioners). It is mostly provided for backward
|
||||
compatibility; indeed, it is internally implemented by invoking the
|
||||
two previous methods \verb|hierarchy_build| and
|
||||
\verb|smoothers_build|, whose nomenclature would however be somewhat
|
||||
unnatural when dealing with simple one-level preconditioners.
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
|
||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||
\verb|a| & \verb|type(psb_|\emph{x}\verb|spmat_type), intent(in)|. \\
|
||||
& The sparse matrix structure containing the local part of the
|
||||
matrix to be preconditioned. Note that \emph{x} must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.
|
||||
See the PSBLAS User's Guide for details \cite{PSBLASGUIDE}.\\
|
||||
\verb|desc_a| & \verb|type(psb_desc_type), intent(in)|. \\
|
||||
& The communication descriptor of \verb|a|. See the PSBLAS User's Guide for
|
||||
details \cite{PSBLASGUIDE}.\\
|
||||
%\verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\
|
||||
% & The preconditioner data structure. Note that \emph{x} must be chosen according
|
||||
% to the real/complex, single/double precision version of MLD2P4 under use.\\
|
||||
\verb|info| & \verb|integer, intent(out)|.\\
|
||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||
\verb|amold| & \verb|class(psb_|\emph{x}\verb|_base_sparse_mat), intent(in), optional|. \\
|
||||
& The desired dynamic type for internal matrix
|
||||
components; this allows e.g. running on GPUs; it needs not be the
|
||||
same on all processes. See the PSBLAS User's Guide for
|
||||
details \cite{PSBLASGUIDE}. \\
|
||||
\verb|vmold| & \verb|class(psb_|\emph{x}\verb|_base_vect_type), intent(in), optional|. \\
|
||||
& The desired dynamic type for internal vector
|
||||
components; this allows e.g. running on GPUs. \\
|
||||
\verb|imold| & \verb|class(psb_i_base_vect_type), intent(in), optional|. \\
|
||||
& The desired dynamic type for internal integer vector
|
||||
components; this allows e.g. running on GPUs. \\
|
||||
\end{tabular}
|
||||
|
||||
\vskip1.5\baselineskip
|
||||
For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
|
||||
\begin{center}
|
||||
\verb|call mld_precbld(p,what,val,info[,amold,vmold,imold])|
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
The method can be used to build multilevel preconditioners too.
|
||||
|
||||
|
||||
\clearpage
|
||||
\subsection{Method apply\label{sec:precapply}}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%apply(x,y,desc_a,info [,trans,work])|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
This routine computes $y = op(B^{-1})\, x$, where $B$ is a previously built
|
||||
This method computes $y = op(B^{-1})\, x$, where $B$ is a previously built
|
||||
preconditioner, stored into \verb|p|, and $op$
|
||||
denotes the preconditioner itself or its transpose, according to
|
||||
the value of \verb|trans|.
|
||||
Note that, when MLD2P4 is used with a Krylov solver from PSBLAS,
|
||||
\verb|p%apply| is called within the PSBLAS routine \verb|psb_krylov|
|
||||
\verb|p%apply| is called within the PSBLAS method \verb|psb_krylov|
|
||||
and hence it is completely transparent to the user.
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
@@ -781,7 +811,7 @@ and hence it is completely transparent to the user.
|
||||
\end{tabular}
|
||||
|
||||
\vskip1.5\baselineskip
|
||||
For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
|
||||
\begin{center}
|
||||
@@ -790,14 +820,14 @@ as follows:
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsection{Subroutine free\label{sec:precfree}}
|
||||
\subsection{Method free\label{sec:precfree}}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%free(p,info)|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
This routine deallocates the preconditioner data structure \verb|p|.
|
||||
This method deallocates the preconditioner data structure \verb|p|.
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
|
||||
@@ -810,7 +840,7 @@ This routine deallocates the preconditioner data structure \verb|p|.
|
||||
\end{tabular}
|
||||
|
||||
\vskip1.5\baselineskip
|
||||
For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
|
||||
\begin{center}
|
||||
@@ -820,14 +850,14 @@ as follows:
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsection{Subroutine descr\label{sec:precdescr}}
|
||||
\subsection{Method descr\label{sec:precdescr}}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%descr(info, [iout])|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
This routine prints a description of the preconditioner \verb|p| to the standard output or
|
||||
This method prints a description of the preconditioner \verb|p| to the standard output or
|
||||
to a file. It must be called after \verb|hierachy_build| and \verb|smoothers_build|,
|
||||
or \verb|build|, have been called.
|
||||
|
||||
@@ -845,7 +875,7 @@ or \verb|build|, have been called.
|
||||
\end{tabular}
|
||||
|
||||
\vskip1.5\baselineskip
|
||||
For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
||||
For compatibility with the previous versions of MLD2P4, this method can be also invoked
|
||||
as follows:
|
||||
|
||||
\begin{center}
|
||||
@@ -853,6 +883,136 @@ as follows:
|
||||
\end{center}
|
||||
|
||||
|
||||
\subsection{Auxiliary Methods\label{sec:auxil}}
|
||||
Various functionalities are implemented as additional methods of the
|
||||
preconditioner object.
|
||||
|
||||
\subsubsection{Method: dump}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
Dump on file.
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
|
||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||
%\verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\
|
||||
% & The preconditioner data structure. Note that \emph{x} must be chosen according
|
||||
% to the real/complex, single/double precision version of MLD2P4 under use.\\
|
||||
\verb|info| & \verb|integer, intent(out)|.\\
|
||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||
\verb|amold| & \verb|class(psb_|\emph{x}\verb|_base_sparse_mat), intent(in), optional|. \\
|
||||
& The desired dynamic type for internal matrix
|
||||
components; this allows e.g. running on GPUs; it needs not be the
|
||||
same on all processes. See the PSBLAS User's Guide for
|
||||
details \cite{PSBLASGUIDE}. \\
|
||||
\end{tabular}
|
||||
|
||||
|
||||
\subsubsection{Method: clone}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%clone(pout,info)|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
Create a (deep) copy of the preconditioner object.
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
|
||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||
\verb|pout| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(out)|.\\
|
||||
& The copy of the preconditioner data structure. Note
|
||||
that \emph{x} must be chosen according
|
||||
to the real/complex, single/double precision version of MLD2P4 under use.\\
|
||||
\verb|info| & \verb|integer, intent(out)|.\\
|
||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||
\end{tabular}
|
||||
|
||||
|
||||
|
||||
\subsubsection{Method: sizeof}
|
||||
|
||||
\begin{center}
|
||||
\verb|sz = p%sizeof()|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
Return memory footprint in bytes.
|
||||
|
||||
% {\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
|
||||
% \begin{tabular}{p{1.2cm}p{12cm}}
|
||||
% %\verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\
|
||||
% % & The preconditioner data structure. Note that \emph{x} must be chosen according
|
||||
% % to the real/complex, single/double precision version of MLD2P4 under use.\\
|
||||
% \verb|info| & \verb|integer, intent(out)|.\\
|
||||
% & Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||
% \end{tabular}
|
||||
|
||||
\subsubsection{Method: allocate\_wrk}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%allocate_wrk(info[, vmold])|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
Allocate internal work vectors. Each application of the preconditioner
|
||||
uses a number of work vectors which are allocated internally as
|
||||
necessary; therefore allocation and deallocation of memory occurs
|
||||
multiple times during the execution of a Krylov method. In most cases
|
||||
this strategy is perfectly acceptable, but
|
||||
on some platforms, most notably GPUs, memory allocation is
|
||||
a slow operation, and the default behaviour would lead to a
|
||||
slowdown. This method allows to trade space for time by preallocating
|
||||
the internal workspace outside of the invocation of a Krylov
|
||||
method. When using GPUs or other specialized devices, the \verb|vmold|
|
||||
argument is also necessary to ensure the internal work vectors are of
|
||||
the appropriate dynamic type to exploit the accelerator hardware; when
|
||||
allocation occurs internally this is taken care of based on the dynamic
|
||||
type of the \verb|x| argument to the \verb|apply| method.
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
|
||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||
%\verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\
|
||||
% & The preconditioner data structure. Note that \emph{x} must be chosen according
|
||||
% to the real/complex, single/double precision version of MLD2P4 under use.\\
|
||||
\verb|info| & \verb|integer, intent(out)|.\\
|
||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||
\verb|vmold| & \verb|class(psb_|\emph{x}\verb|_base_vect_type), intent(in), optional|. \\
|
||||
& The desired dynamic type for internal vector
|
||||
components; this allows e.g. running on GPUs. \\
|
||||
\end{tabular}
|
||||
|
||||
|
||||
|
||||
\subsubsection{Method: free\_wrk}
|
||||
|
||||
\begin{center}
|
||||
\verb|call p%free_wrk(info)|\\
|
||||
\end{center}
|
||||
|
||||
\noindent
|
||||
Deallocate internal work vectors.
|
||||
|
||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||
|
||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||
%\verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\
|
||||
% & The preconditioner data structure. Note that \emph{x} must be chosen according
|
||||
% to the real/complex, single/double precision version of MLD2P4 under use.\\
|
||||
\verb|info| & \verb|integer, intent(out)|.\\
|
||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||
\end{tabular}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
%%% Local Variables:
|
||||
%%% mode: latex
|
||||
%%% TeX-master: "userguide"
|
||||
|
||||
Reference in New Issue
Block a user