Document DESC%CNV method and MOLD arguments to CDASB and PREC%BUILD
parent
4beef03aec
commit
c3633b6fb2
@ -1,94 +1,342 @@
|
||||
<!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>Utilities</TITLE>
|
||||
<META NAME="description" CONTENT="Utilities">
|
||||
<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 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="node123.html">
|
||||
<LINK REL="previous" HREF="node115.html">
|
||||
<LINK REL="next" HREF="node117.html">
|
||||
<LINK REL="previous" HREF="node99.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node117.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1702"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html1705"
|
||||
HREF="node117.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1698"
|
||||
<A NAME="tex2html1701"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1692"
|
||||
<A NAME="tex2html1695"
|
||||
HREF="node115.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1700"
|
||||
<A NAME="tex2html1703"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1703"
|
||||
HREF="node117.html">hb_read Read</A>
|
||||
<B> Up:</B> <A NAME="tex2html1699"
|
||||
<B> Next:</B> <A NAME="tex2html1706"
|
||||
HREF="node117.html">Utilities</A>
|
||||
<B> Up:</B> <A NAME="tex2html1702"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1693"
|
||||
HREF="node115.html">Error handling</A>
|
||||
<B> <A NAME="tex2html1701"
|
||||
<B> Previous:</B> <A NAME="tex2html1696"
|
||||
HREF="node115.html">psb_rcv Receive</A>
|
||||
<B> <A NAME="tex2html1704"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000100000000000000000"></A>
|
||||
<A NAME="sec:util"></A>
|
||||
<BR>
|
||||
Utilities
|
||||
<H1><A NAME="SECTION00090000000000000000">
|
||||
Error handling</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
We have some utitlities available for input and output of
|
||||
sparse matrices; the interfaces to these routines are available in the
|
||||
module <code>psb_util_mod</code>.
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html1704"
|
||||
HREF="node117.html">hb_read -- Read a sparse matrix from a file in the
|
||||
Harwell-Boeing format</A>
|
||||
<LI><A NAME="tex2html1705"
|
||||
HREF="node118.html">hb_write -- Write a sparse matrix to a file
|
||||
in the Harwell-Boeing format</A>
|
||||
<LI><A NAME="tex2html1706"
|
||||
HREF="node119.html">mm_mat_read -- Read a sparse matrix from a
|
||||
file in the MatrixMarket format</A>
|
||||
<LI><A NAME="tex2html1707"
|
||||
HREF="node120.html">mm_array_read -- Read a dense array from a
|
||||
file in the MatrixMarket format</A>
|
||||
<LI><A NAME="tex2html1708"
|
||||
HREF="node121.html">mm_mat_write -- Write a sparse matrix to a
|
||||
file in the MatrixMarket format</A>
|
||||
<LI><A NAME="tex2html1709"
|
||||
HREF="node122.html">mm_array_write -- Write a dense array from a
|
||||
file in the MatrixMarket format</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
The PSBLAS library error handling policy has been completely rewritten
|
||||
in version 2.0. The idea behind the design of this new error handling
|
||||
strategy is to keep error messages on a stack allowing the user to
|
||||
trace back up to the point where the first error message has been
|
||||
generated. Every routine in the PSBLAS-2.0 library has, as last
|
||||
non-optional argument, an integer <code>info</code> variable; whenever,
|
||||
inside the routine, an error is detected, this variable is set to a
|
||||
value corresponding to a specific error code. Then this error code is
|
||||
also pushed on the error stack and then either control is returned to
|
||||
the caller routine or the execution is aborted, depending on the users
|
||||
choice. At the time when the execution is aborted, an error message is
|
||||
printed on standard output with a level of verbosity than can be
|
||||
chosen by the user. If the execution is not aborted, then, the caller
|
||||
routine checks the value returned in the <code>info</code> variable and, if
|
||||
not zero, an error condition is raised. This process continues on all the
|
||||
levels of nested calls until the level where the user decides to abort
|
||||
the program execution.
|
||||
|
||||
<P>
|
||||
Figure <A HREF="#fig:routerr">9</A> shows the layout of a generic <code>psb_foo</code>
|
||||
routine with respect to the PSBLAS-2.0 error handling policy. It is
|
||||
possible to see how, whenever an error condition is detected, the
|
||||
<code>info</code> variable is set to the corresponding error code which is,
|
||||
then, pushed on top of the stack by means of the
|
||||
<code>psb_errpush</code>. An error condition may be directly detected inside
|
||||
a routine or indirectly checking the error code returned returned by a
|
||||
called routine. Whenever an error is encountered, after it has been
|
||||
pushed on stack, the program execution skips to a point where the
|
||||
error condition is handled; the error condition is handled either by
|
||||
returning control to the caller routine or by calling the
|
||||
<code>psb\_error</code> routine which prints the content of the error stack
|
||||
and aborts the program execution, according to the choice made by the
|
||||
user with <code>psb_set_erraction</code>. The default is to print the error
|
||||
and terminate the program, but the user may choose to handle the error
|
||||
explicitly.
|
||||
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:routerr"></A><A NAME="7265"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 9:</STRONG>
|
||||
The layout of a generic <TT>psb_foo</TT>
|
||||
routine with respect to PSBLAS-2.0 error handling policy.</CAPTION>
|
||||
<TR><TD>
|
||||
<BR>
|
||||
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
$\fbox{\TheSbox}$
|
||||
-->
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="562" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img142.png"
|
||||
ALT="\fbox{\TheSbox}"></SPAN>
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
Figure <A HREF="#fig:errormsg">10</A> reports a sample error message generated by
|
||||
the PSBLAS-2.0 library. This error has been generated by the fact that
|
||||
the user has chosen the invalid “FOO” storage format to represent
|
||||
the sparse matrix. From this error message it is possible to see that
|
||||
the error has been detected inside the <code>psb_cest</code> subroutine
|
||||
called by <code>psb_spasb</code> ... by process 0 (i.e. the root process).
|
||||
|
||||
<P>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:errormsg"></A><A NAME="7266"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 10:</STRONG>
|
||||
A sample PSBLAS-2.0 error
|
||||
message. Process 0 detected an error condition inside the psb_cest subroutine</CAPTION>
|
||||
<TR><TD>
|
||||
<BR>
|
||||
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
$\fbox{\TheSbox}$
|
||||
-->
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="562" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img142.png"
|
||||
ALT="\fbox{\TheSbox}"></SPAN>
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error
|
||||
stack
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="423" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img144.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_errpush(err_c, r_name, i_err, a_err)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>err_c</STRONG></DT>
|
||||
<DD>the error code
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer.
|
||||
</DD>
|
||||
<DT><STRONG>r_name</STRONG></DT>
|
||||
<DD>the soutine where the error has been caught.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a string.
|
||||
<BR></DD>
|
||||
<DT><STRONG>i_err</STRONG></DT>
|
||||
<DD>addional info for error code
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Specified as: an integer array
|
||||
<BR></DD>
|
||||
<DT><STRONG>a_err</STRONG></DT>
|
||||
<DD>addional info for error code
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Specified as: a string.
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
|
||||
execution
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="214" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img145.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_error(icontxt)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>icontxt</STRONG></DT>
|
||||
<DD>the communication context.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
|
||||
messages.
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="261" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img146.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_set_errverbosity(v)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>v</STRONG></DT>
|
||||
<DD>the verbosity level
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
|
||||
taken upon error condition.
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="291" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img147.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_set_erraction(err_act)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>err_act</STRONG></DT>
|
||||
<DD>the type of action.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer. Possible values: <code>psb_act_ret</code>,
|
||||
<code>psb_act_abort</code>.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1705"
|
||||
HREF="node117.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1701"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1695"
|
||||
HREF="node115.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1703"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1706"
|
||||
HREF="node117.html">Utilities</A>
|
||||
<B> Up:</B> <A NAME="tex2html1702"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1696"
|
||||
HREF="node115.html">psb_rcv Receive</A>
|
||||
<B> <A NAME="tex2html1704"
|
||||
HREF="node1.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,161 +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>hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format</TITLE>
|
||||
<META NAME="description" CONTENT="hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format">
|
||||
<TITLE>Utilities</TITLE>
|
||||
<META NAME="description" CONTENT="Utilities">
|
||||
<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="node118.html">
|
||||
<LINK REL="next" HREF="node124.html">
|
||||
<LINK REL="previous" HREF="node116.html">
|
||||
<LINK REL="up" HREF="node116.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node118.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1720"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html1717"
|
||||
HREF="node118.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1716"
|
||||
HREF="node116.html">
|
||||
<A NAME="tex2html1713"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1710"
|
||||
<A NAME="tex2html1707"
|
||||
HREF="node116.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1718"
|
||||
<A NAME="tex2html1715"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1721"
|
||||
HREF="node118.html">hb_write Write</A>
|
||||
<B> Up:</B> <A NAME="tex2html1717"
|
||||
HREF="node116.html">Utilities</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1711"
|
||||
HREF="node116.html">Utilities</A>
|
||||
<B> <A NAME="tex2html1719"
|
||||
<B> Next:</B> <A NAME="tex2html1718"
|
||||
HREF="node118.html">hb_read Read</A>
|
||||
<B> Up:</B> <A NAME="tex2html1714"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1708"
|
||||
HREF="node116.html">Error handling</A>
|
||||
<B> <A NAME="tex2html1716"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000101000000000000000">
|
||||
hb_read -- Read a sparse matrix from a file in the
|
||||
Harwell-Boeing format</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="462" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img148.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call hb_read(a, iret, iunit, filename, b, mtitle)
|
||||
\end{lstlisting}">
|
||||
<H1><A NAME="SECTION000100000000000000000"></A>
|
||||
<A NAME="sec:util"></A>
|
||||
<BR>
|
||||
Utilities
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>filename</STRONG></DT>
|
||||
<DD>The name of the file to be read.
|
||||
<BR>
|
||||
Type:<B>optional</B>.
|
||||
<BR>
|
||||
Specified as: a character variable containing a valid file name, or
|
||||
<code>-</code>, in which case the default input unit 5 (i.e. standard input
|
||||
in Unix jargon) is used. Default: <code>-</code>.
|
||||
</DD>
|
||||
<DT><STRONG>iunit</STRONG></DT>
|
||||
<DD>The Fortran file unit number.
|
||||
<BR>
|
||||
Type:<B>optional</B>.
|
||||
<BR>
|
||||
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
|
||||
</DD>
|
||||
</DL>
|
||||
We have some utitlities available for input and output of
|
||||
sparse matrices; the interfaces to these routines are available in the
|
||||
module <code>psb_util_mod</code>.
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the sparse matrix read from file.
|
||||
<BR>
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>b</STRONG></DT>
|
||||
<DD>Rigth hand side(s).
|
||||
<BR>
|
||||
Type: <B>Optional</B>
|
||||
<BR>
|
||||
An array of type real or complex, rank 2 and having the ALLOCATABLE
|
||||
attribute; will be allocated and filled in if the input file contains
|
||||
a right hand side, otherwise will be left in the UNALLOCATED state.
|
||||
</DD>
|
||||
<DT><STRONG>mtitle</STRONG></DT>
|
||||
<DD>Matrix title.
|
||||
<BR>
|
||||
Type: <B>Optional</B>
|
||||
<BR>
|
||||
A charachter variable of length 72 holding a copy of the
|
||||
matrix title as specified by the Harwell-Boeing format and contained
|
||||
in the input file.
|
||||
</DD>
|
||||
<DT><STRONG>iret</STRONG></DT>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</DL>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1720"
|
||||
HREF="node118.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1716"
|
||||
HREF="node116.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1710"
|
||||
HREF="node116.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1718"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1721"
|
||||
HREF="node118.html">hb_write Write</A>
|
||||
<B> Up:</B> <A NAME="tex2html1717"
|
||||
HREF="node116.html">Utilities</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1711"
|
||||
HREF="node116.html">Utilities</A>
|
||||
<B> <A NAME="tex2html1719"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html1719"
|
||||
HREF="node118.html">hb_read -- Read a sparse matrix from a file in the
|
||||
Harwell-Boeing format</A>
|
||||
<LI><A NAME="tex2html1720"
|
||||
HREF="node119.html">hb_write -- Write a sparse matrix to a file
|
||||
in the Harwell-Boeing format</A>
|
||||
<LI><A NAME="tex2html1721"
|
||||
HREF="node120.html">mm_mat_read -- Read a sparse matrix from a
|
||||
file in the MatrixMarket format</A>
|
||||
<LI><A NAME="tex2html1722"
|
||||
HREF="node121.html">mm_array_read -- Read a dense array from a
|
||||
file in the MatrixMarket format</A>
|
||||
<LI><A NAME="tex2html1723"
|
||||
HREF="node122.html">mm_mat_write -- Write a sparse matrix to a
|
||||
file in the MatrixMarket format</A>
|
||||
<LI><A NAME="tex2html1724"
|
||||
HREF="node123.html">mm_array_write -- Write a dense array from a
|
||||
file in the MatrixMarket format</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,141 +1,98 @@
|
||||
<!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>init -- Initialize a preconditioner</TITLE>
|
||||
<META NAME="description" CONTENT="init -- Initialize a preconditioner">
|
||||
<TITLE>Preconditioner routines</TITLE>
|
||||
<META NAME="description" CONTENT="Preconditioner routines">
|
||||
<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="node125.html">
|
||||
<LINK REL="previous" HREF="node123.html">
|
||||
<LINK REL="up" HREF="node123.html">
|
||||
<LINK REL="next" HREF="node131.html">
|
||||
<LINK REL="previous" HREF="node117.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node125.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1808"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html1805"
|
||||
HREF="node125.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1804"
|
||||
HREF="node123.html">
|
||||
<A NAME="tex2html1801"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1798"
|
||||
<A NAME="tex2html1795"
|
||||
HREF="node123.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1806"
|
||||
<A NAME="tex2html1803"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1809"
|
||||
HREF="node125.html">build Builds</A>
|
||||
<B> Up:</B> <A NAME="tex2html1805"
|
||||
HREF="node123.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1799"
|
||||
HREF="node123.html">Preconditioner routines</A>
|
||||
<B> <A NAME="tex2html1807"
|
||||
<B> Next:</B> <A NAME="tex2html1806"
|
||||
HREF="node125.html">init Initialize</A>
|
||||
<B> Up:</B> <A NAME="tex2html1802"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1796"
|
||||
HREF="node123.html">mm_array_write Write</A>
|
||||
<B> <A NAME="tex2html1804"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000111000000000000000">
|
||||
init -- Initialize a preconditioner</A>
|
||||
</H2>
|
||||
<H1><A NAME="SECTION000110000000000000000"></A>
|
||||
<A NAME="sec:precs"></A>
|
||||
<BR>
|
||||
Preconditioner routines
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call prec%init(ptype, info)
|
||||
</PRE>
|
||||
<A NAME="sec:psprecs"></A>The base PSBLAS library contains the implementation of two simple
|
||||
preconditioning techniques:
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>ptype</STRONG></DT>
|
||||
<DD>the type of preconditioner.
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a character string, see usage notes.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Exit</B></STRONG></DT>
|
||||
<DD><P>
|
||||
</DD>
|
||||
<DT><STRONG>prec</STRONG></DT>
|
||||
<DD>Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Error code: if no error, 0 is returned.
|
||||
</DD>
|
||||
</DL>
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>Legal inputs to this subroutine are interpreted depending on the
|
||||
<IMG
|
||||
WIDTH="41" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img154.png"
|
||||
ALT="$ptype$"> string as follows<A NAME="tex2html31"
|
||||
HREF="footnode.html#foot7601"><SUP>4</SUP></A>:
|
||||
<DL>
|
||||
<DT><STRONG>NONE</STRONG></DT>
|
||||
<DD>No preconditioning, i.e. the preconditioner is just a copy
|
||||
operator.
|
||||
</DD>
|
||||
<DT><STRONG>DIAG</STRONG></DT>
|
||||
<DD>Diagonal scaling; each entry of the input vector is
|
||||
multiplied by the reciprocal of the sum of the absolute values of
|
||||
the coefficients in the corresponding row of matrix <IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">;
|
||||
</DD>
|
||||
<DT><STRONG>BJAC</STRONG></DT>
|
||||
<DD>Precondition by a factorization of the
|
||||
block-diagonal of matrix <IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">, where block boundaries are determined
|
||||
by the data allocation boundaries for each process; requires no
|
||||
communication. Only the incomplete factorization <IMG
|
||||
WIDTH="56" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img155.png"
|
||||
ALT="$ILU(0)$"> is
|
||||
currently implemented.
|
||||
</DD>
|
||||
</DL>
|
||||
<UL>
|
||||
<LI>Diagonal Scaling
|
||||
</LI>
|
||||
<LI>Block Jacobi with ILU(0) factorization
|
||||
</LI>
|
||||
</UL>
|
||||
The supporting data type and subroutine interfaces are defined in the
|
||||
module <code>psb_prec_mod</code>.
|
||||
The old interfaces <code>psb_precinit</code> and <code>psb_precbld</code> are still supported for
|
||||
backward compatibility
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html1807"
|
||||
HREF="node125.html">init -- Initialize a preconditioner</A>
|
||||
<LI><A NAME="tex2html1808"
|
||||
HREF="node126.html">build -- Builds a preconditioner</A>
|
||||
<LI><A NAME="tex2html1809"
|
||||
HREF="node127.html">apply -- Preconditioner application
|
||||
routine</A>
|
||||
<LI><A NAME="tex2html1810"
|
||||
HREF="node128.html">descr -- Prints a description of current
|
||||
preconditioner</A>
|
||||
<LI><A NAME="tex2html1811"
|
||||
HREF="node129.html">clone -- clone current
|
||||
preconditioner</A>
|
||||
<LI><A NAME="tex2html1812"
|
||||
HREF="node130.html">free -- Free a preconditioner</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,433 +1,76 @@
|
||||
<!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>psb_krylov -- Krylov Methods Driver Routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_krylov -- Krylov Methods Driver Routine">
|
||||
<TITLE>Iterative Methods</TITLE>
|
||||
<META NAME="description" CONTENT="Iterative 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="previous" HREF="node130.html">
|
||||
<LINK REL="up" HREF="node130.html">
|
||||
<LINK REL="next" HREF="node133.html">
|
||||
<LINK REL="previous" HREF="node124.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node132.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1889"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html1893"
|
||||
HREF="node132.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1885"
|
||||
HREF="node130.html">
|
||||
<A NAME="tex2html1889"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1881"
|
||||
<A NAME="tex2html1883"
|
||||
HREF="node130.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1887"
|
||||
<A NAME="tex2html1891"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1890"
|
||||
HREF="node132.html">Bibliography</A>
|
||||
<B> Up:</B> <A NAME="tex2html1886"
|
||||
HREF="node130.html">Iterative Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1882"
|
||||
HREF="node130.html">Iterative Methods</A>
|
||||
<B> <A NAME="tex2html1888"
|
||||
<B> Next:</B> <A NAME="tex2html1894"
|
||||
HREF="node132.html">psb_krylov Krylov</A>
|
||||
<B> Up:</B> <A NAME="tex2html1890"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1884"
|
||||
HREF="node130.html">free Free</A>
|
||||
<B> <A NAME="tex2html1892"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000121000000000000000"></A><A NAME="krylov"></A>
|
||||
<BR>
|
||||
psb_krylov -- Krylov Methods Driver
|
||||
Routine
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This subroutine is a driver that provides a general interface for all
|
||||
the Krylov-Subspace family methods implemented in PSBLAS version 2.
|
||||
|
||||
<P>
|
||||
The stopping criterion can take the following values:
|
||||
<DL>
|
||||
<DT><STRONG>1</STRONG></DT>
|
||||
<DD>normwise backward error in the infinity
|
||||
norm; the iteration is stopped when
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
err = \frac{\|r_i\|}{(\|A\|\|x_i\|+\|b\|)} < eps
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="205" HEIGHT="44" BORDER="0"
|
||||
SRC="img157.png"
|
||||
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{(\Vert A\Vert\Vert x_i\Vert+\Vert b\Vert)} < eps \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
</DD>
|
||||
<DT><STRONG>2</STRONG></DT>
|
||||
<DD>Relative residual in the 2-norm; the iteration is stopped
|
||||
when
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
err = \frac{\|r_i\|}{\|b\|_2} < eps
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="121" HEIGHT="44" BORDER="0"
|
||||
SRC="img158.png"
|
||||
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert b\Vert _2} < eps \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
</DD>
|
||||
<DT><STRONG>3</STRONG></DT>
|
||||
<DD>Relative residual reduction in the 2-norm; the iteration is stopped
|
||||
when
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
err = \frac{\|r_i\|}{\|r_0\|_2} < eps
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="129" HEIGHT="44" BORDER="0"
|
||||
SRC="img159.png"
|
||||
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert r_0\Vert _2} < eps \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
</DD>
|
||||
</DL>
|
||||
The behaviour is controlled by the istop argument (see
|
||||
later). In the above formulae, <IMG
|
||||
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img160.png"
|
||||
ALT="$x_i$"> is the tentative solution and
|
||||
<IMG
|
||||
WIDTH="91" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img161.png"
|
||||
ALT="$r_i=b-Ax_i$"> the corresponding residual at the <IMG
|
||||
WIDTH="9" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img4.png"
|
||||
ALT="$i$">-th iteration.
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="482" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img162.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&
|
||||
& itmax,iter,err,itrace,irst,istop,cond)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>method</STRONG></DT>
|
||||
<DD>a string that defines the iterative method to be
|
||||
used. Supported values are:
|
||||
<DL>
|
||||
<DT><STRONG>CG:</STRONG></DT>
|
||||
<DD>the Conjugate Gradient method;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>CGS:</STRONG></DT>
|
||||
<DD>the Conjugate Gradient Stabilized method;
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG>GCR:</STRONG></DT>
|
||||
<DD>the Generalized Conjugate Residual method;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>FCG:</STRONG></DT>
|
||||
<DD>the Flexible Conjugate Gradient method<A NAME="tex2html32"
|
||||
HREF="footnode.html#foot8038"><SUP>5</SUP></A>;
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG>BICG:</STRONG></DT>
|
||||
<DD>the Bi-Conjugate Gradient method;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>BICGSTAB:</STRONG></DT>
|
||||
<DD>the Bi-Conjugate Gradient Stabilized method;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>BICGSTABL:</STRONG></DT>
|
||||
<DD>the Bi-Conjugate Gradient Stabilized method with restarting;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>RGMRES:</STRONG></DT>
|
||||
<DD>the Generalized Minimal Residual method with restarting.
|
||||
|
||||
</DD>
|
||||
</DL>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the local portion of global sparse matrix
|
||||
<IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>prec</STRONG></DT>
|
||||
<DD>The data structure containing the preconditioner.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type precdata<TT>psb_prec_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>b</STRONG></DT>
|
||||
<DD>The RHS vector.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>The initial guess.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>eps</STRONG></DT>
|
||||
<DD>The stopping tolerance.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a real number.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>itmax</STRONG></DT>
|
||||
<DD>The maximum number of iterations to perform.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Default: <IMG
|
||||
WIDTH="99" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img164.png"
|
||||
ALT="$itmax = 1000$">.
|
||||
<BR>
|
||||
Specified as: an integer variable <IMG
|
||||
WIDTH="76" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img165.png"
|
||||
ALT="$itmax \ge 1$">.
|
||||
</DD>
|
||||
<DT><STRONG>itrace</STRONG></DT>
|
||||
<DD>If <IMG
|
||||
WIDTH="29" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img111.png"
|
||||
ALT="$>0$"> print out an informational message about
|
||||
convergence every <IMG
|
||||
WIDTH="45" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img166.png"
|
||||
ALT="$itrace$"> iterations.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR></DD>
|
||||
<DT><STRONG>irst</STRONG></DT>
|
||||
<DD>An integer specifying the restart parameter.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Values: <IMG
|
||||
WIDTH="60" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img167.png"
|
||||
ALT="$irst>0$">. This is employed for the BiCGSTABL or RGMRES
|
||||
methods, otherwise it is ignored.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG>istop</STRONG></DT>
|
||||
<DD>An integer specifying the stopping criterion.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Values: 1: use the normwise backward error, 2: use the scaled 2-norm
|
||||
of the residual, 3: use the residual reduction in the 2-norm. Default: 2.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>The computed solution.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>iter</STRONG></DT>
|
||||
<DD>The number of iterations performed.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Returned as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>err</STRONG></DT>
|
||||
<DD>The convergence estimate on exit.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<H1><A NAME="SECTION000120000000000000000"></A>
|
||||
<A NAME="sec:methods"></A>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Returned as: a real number.
|
||||
</DD>
|
||||
<DT><STRONG>cond</STRONG></DT>
|
||||
<DD>An estimate of the condition number of matrix <IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">; only
|
||||
available with the <IMG
|
||||
WIDTH="29" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img168.png"
|
||||
ALT="$CG$"> method on real data.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Returned as: a real number. A correct result will be greater than or
|
||||
equal to one; if specified for non-real data, or an error occurred,
|
||||
zero is returned.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
Iterative Methods
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
In this chapter we provide routines for preconditioners and iterative
|
||||
methods. The interfaces for Krylov subspace methods are available in
|
||||
the module <code>psb_krylov_mod</code>.
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1889"
|
||||
HREF="node132.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1885"
|
||||
HREF="node130.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1881"
|
||||
HREF="node130.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1887"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1890"
|
||||
HREF="node132.html">Bibliography</A>
|
||||
<B> Up:</B> <A NAME="tex2html1886"
|
||||
HREF="node130.html">Iterative Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1882"
|
||||
HREF="node130.html">Iterative Methods</A>
|
||||
<B> <A NAME="tex2html1888"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html1895"
|
||||
HREF="node132.html">psb_krylov -- Krylov Methods Driver
|
||||
Routine</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,173 +1,431 @@
|
||||
<!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>psb_krylov -- Krylov Methods Driver Routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_krylov -- Krylov Methods Driver Routine">
|
||||
<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="node133.html">
|
||||
<LINK REL="previous" HREF="node130.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="previous" HREF="node131.html">
|
||||
<LINK REL="up" HREF="node131.html">
|
||||
<LINK REL="next" HREF="node133.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1901"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html1904"
|
||||
HREF="node133.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1897"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html1900"
|
||||
HREF="node131.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1891"
|
||||
<A NAME="tex2html1896"
|
||||
HREF="node131.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1899"
|
||||
<A NAME="tex2html1902"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1902"
|
||||
HREF="node133.html">About this document ...</A>
|
||||
<B> Up:</B> <A NAME="tex2html1898"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1892"
|
||||
HREF="node131.html">psb_krylov Krylov</A>
|
||||
<B> <A NAME="tex2html1900"
|
||||
<B> Next:</B> <A NAME="tex2html1905"
|
||||
HREF="node133.html">Bibliography</A>
|
||||
<B> Up:</B> <A NAME="tex2html1901"
|
||||
HREF="node131.html">Iterative Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1897"
|
||||
HREF="node131.html">Iterative Methods</A>
|
||||
<B> <A NAME="tex2html1903"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR><BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000130000000000000000">
|
||||
Bibliography</A>
|
||||
</H2><DL COMPACT><DD><P></P><DT><A NAME="DesPat:11">1</A>
|
||||
<DD>
|
||||
D. Barbieri, V. Cardellini, S. Filippone and D. Rouson
|
||||
<EM>Design Patterns for Scientific Computations on Sparse Matrices</EM>,
|
||||
HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011
|
||||
|
||||
<H2><A NAME="SECTION000121000000000000000"></A><A NAME="krylov"></A>
|
||||
<BR>
|
||||
psb_krylov -- Krylov Methods Driver
|
||||
Routine
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<P></P><DT><A NAME="PARA04FOREST">2</A>
|
||||
<DD>
|
||||
G. Bella, S. Filippone, A. De Maio and M. Testa,
|
||||
<EM>A Simulation Model for Forest Fires</EM>,
|
||||
in J. Dongarra, K. Madsen, J. Wasniewski, editors,
|
||||
Proceedings of PARA 04 Workshop on State of the Art
|
||||
in Scientific Computing, pp. 546-553, Lecture Notes in Computer Science,
|
||||
Springer, 2005.
|
||||
<P></P><DT><A NAME="2007d">3</A>
|
||||
<DD> A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,<BR>
|
||||
2LEV-D2P4: a package of high-performance preconditioners,<BR>
|
||||
Applicable Algebra in Engineering, Communications and Computing,
|
||||
Volume 18, Number 3, May, 2007, pp. 223-239<P></P><DT><A NAME="2007c">4</A>
|
||||
<DD> P. D'Ambra, S. Filippone, D. Di Serafino<BR>
|
||||
On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners
|
||||
<BR>
|
||||
Applied Numerical Mathematics, Elsevier Science,
|
||||
Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196.
|
||||
This subroutine is a driver that provides a general interface for all
|
||||
the Krylov-Subspace family methods implemented in PSBLAS version 2.
|
||||
|
||||
<P>
|
||||
The stopping criterion can take the following values:
|
||||
<DL>
|
||||
<DT><STRONG>1</STRONG></DT>
|
||||
<DD>normwise backward error in the infinity
|
||||
norm; the iteration is stopped when
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
err = \frac{\|r_i\|}{(\|A\|\|x_i\|+\|b\|)} < eps
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="205" HEIGHT="44" BORDER="0"
|
||||
SRC="img157.png"
|
||||
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{(\Vert A\Vert\Vert x_i\Vert+\Vert b\Vert)} < eps \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
</DD>
|
||||
<DT><STRONG>2</STRONG></DT>
|
||||
<DD>Relative residual in the 2-norm; the iteration is stopped
|
||||
when
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
err = \frac{\|r_i\|}{\|b\|_2} < eps
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="121" HEIGHT="44" BORDER="0"
|
||||
SRC="img158.png"
|
||||
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert b\Vert _2} < eps \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
</DD>
|
||||
<DT><STRONG>3</STRONG></DT>
|
||||
<DD>Relative residual reduction in the 2-norm; the iteration is stopped
|
||||
when
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
err = \frac{\|r_i\|}{\|r_0\|_2} < eps
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="129" HEIGHT="44" BORDER="0"
|
||||
SRC="img159.png"
|
||||
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert r_0\Vert _2} < eps \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
</DD>
|
||||
</DL>
|
||||
The behaviour is controlled by the istop argument (see
|
||||
later). In the above formulae, <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img160.png"
|
||||
ALT="$x_i$"></SPAN> is the tentative solution and
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="91" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img161.png"
|
||||
ALT="$r_i=b-Ax_i$"></SPAN> the corresponding residual at the <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="9" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img4.png"
|
||||
ALT="$i$"></SPAN>-th iteration.
|
||||
|
||||
<P>
|
||||
<P></P><DT><A NAME="BLAS2">5</A>
|
||||
<DD>
|
||||
Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R.,
|
||||
An Extended Set of Fortran Basic Linear Algebra Subprograms,
|
||||
ACM Trans. Math. Softw. vol. 14, 1-17, 1988.
|
||||
<P></P><DT><A NAME="BLAS3">6</A>
|
||||
<DD>
|
||||
Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I.,
|
||||
A Set of level 3 Basic Linear Algebra Subprograms,
|
||||
ACM Trans. Math. Softw. vol. 16, 1-17, 1990.<P></P><DT><A NAME="BLACS">7</A>
|
||||
<DD>
|
||||
J. J. Dongarra and R. C. Whaley,
|
||||
<EM>A User's Guide to the BLACS v. 1.1</EM>,
|
||||
Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of
|
||||
Tennessee, March 1995 (updated May 1997).<P></P><DT><A NAME="sblas97">8</A>
|
||||
<DD>
|
||||
I. Duff, M. Marrone, G. Radicati and C. Vittoli,
|
||||
<EM>Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
|
||||
a User Level Interface</EM>,
|
||||
ACM Transactions on Mathematical Software, 23(3), pp. 379-401, 1997.<P></P><DT><A NAME="sblas02">9</A>
|
||||
<DD>
|
||||
I. Duff, M. Heroux and R. Pozo,
|
||||
<EM>An Overview of the Sparse Basic Linear
|
||||
Algebra Subprograms: the New Standard from the BLAS Technical Forum</EM>,
|
||||
ACM Transactions on Mathematical Software, 28(2), pp. 239-267, 2002.
|
||||
<P></P><DT><A NAME="PSBLAS">10</A>
|
||||
<DD>
|
||||
S. Filippone and M. Colajanni,
|
||||
<EM>PSBLAS: A Library for Parallel Linear Algebra
|
||||
Computation on Sparse Matrices</EM>,
|
||||
<BR>
|
||||
ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000.<P></P><DT><A NAME="Sparse03">11</A>
|
||||
<DD>
|
||||
S. Filippone and A. Buttari,
|
||||
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>,
|
||||
<IMG
|
||||
WIDTH="482" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img162.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&
|
||||
& itmax,iter,err,itrace,irst,istop,cond)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
ACM Transactions on Mathematical Software, 38(4), 2012.<P></P><DT><A NAME="KIVA3PSBLAS">12</A>
|
||||
<DD>
|
||||
S. Filippone, P. D'Ambra, M. Colajanni,
|
||||
<EM>Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
|
||||
Applications Code on Linux Clusters</EM>,
|
||||
in G. Joubert, A. Murli, F. Peters, M. Vanneschi, editors,
|
||||
Parallel Computing - Advances & Current Issues,
|
||||
pp. 441-448, Imperial College Press, 2002. <P></P><DT><A NAME="DesignPatterns">13</A>
|
||||
<DD>
|
||||
Gamma, E., Helm, R., Johnson, R., and Vlissides,
|
||||
J. 1995.
|
||||
<EM>Design Patterns: Elements of Reusable Object-Oriented Software</EM>.
|
||||
Addison-Wesley.
|
||||
|
||||
<P>
|
||||
<P></P><DT><A NAME="METIS">14</A>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
Karypis, G. and Kumar, V.,
|
||||
<EM>METIS: Unstructured Graph Partitioning and Sparse Matrix
|
||||
Ordering System</EM>.
|
||||
Minneapolis, MN 55455: University of Minnesota, Department of
|
||||
Computer Science, 1995.
|
||||
Internet Address: <code>http://www.cs.umn.edu/~karypis</code>.
|
||||
<P></P><DT><A NAME="BLAS1">15</A>
|
||||
<DD>
|
||||
Lawson, C., Hanson, R., Kincaid, D. and Krogh, F.,
|
||||
Basic Linear Algebra Subprograms for Fortran usage,
|
||||
ACM Trans. Math. Softw. vol. 5, 38-329, 1979.
|
||||
</DD>
|
||||
<DT><STRONG>method</STRONG></DT>
|
||||
<DD>a string that defines the iterative method to be
|
||||
used. Supported values are:
|
||||
<DL>
|
||||
<DT><STRONG>CG:</STRONG></DT>
|
||||
<DD>the Conjugate Gradient method;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>CGS:</STRONG></DT>
|
||||
<DD>the Conjugate Gradient Stabilized method;
|
||||
|
||||
<P>
|
||||
<P></P><DT><A NAME="machiels">16</A>
|
||||
<DD>
|
||||
Machiels, L. and Deville, M.
|
||||
<EM>Fortran 90: An entry to object-oriented programming for the solution
|
||||
of partial differential equations.</EM>
|
||||
ACM Trans. Math. Softw. vol. 23, 32-49.
|
||||
<P></P><DT><A NAME="metcalf">17</A>
|
||||
<DD>
|
||||
Metcalf, M., Reid, J. and Cohen, M.
|
||||
<EM>Fortran 95/2003 explained.</EM>
|
||||
Oxford University Press, 2004.<P></P><DT><A NAME="RouXiaXu:11">18</A>
|
||||
<DD>
|
||||
Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The
|
||||
Object-Oriented Way. Cambridge University Press (2011)
|
||||
</DD>
|
||||
<DT><STRONG>GCR:</STRONG></DT>
|
||||
<DD>the Generalized Conjugate Residual method;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>FCG:</STRONG></DT>
|
||||
<DD>the Flexible Conjugate Gradient method<A NAME="tex2html32"
|
||||
HREF="footnode.html#foot8093"><SUP><SPAN CLASS="arabic">5</SPAN></SUP></A>;
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG>BICG:</STRONG></DT>
|
||||
<DD>the Bi-Conjugate Gradient method;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>BICGSTAB:</STRONG></DT>
|
||||
<DD>the Bi-Conjugate Gradient Stabilized method;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>BICGSTABL:</STRONG></DT>
|
||||
<DD>the Bi-Conjugate Gradient Stabilized method with restarting;
|
||||
|
||||
</DD>
|
||||
<DT><STRONG>RGMRES:</STRONG></DT>
|
||||
<DD>the Generalized Minimal Residual method with restarting.
|
||||
|
||||
</DD>
|
||||
</DL>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the local portion of global sparse matrix
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$"></SPAN>.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>prec</STRONG></DT>
|
||||
<DD>The data structure containing the preconditioner.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type precdata<TT>psb_prec_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>b</STRONG></DT>
|
||||
<DD>The RHS vector.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>The initial guess.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>eps</STRONG></DT>
|
||||
<DD>The stopping tolerance.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a real number.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>itmax</STRONG></DT>
|
||||
<DD>The maximum number of iterations to perform.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Default: <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="99" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img164.png"
|
||||
ALT="$itmax = 1000$"></SPAN>.
|
||||
<BR>
|
||||
Specified as: an integer variable <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="76" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img165.png"
|
||||
ALT="$itmax \ge 1$"></SPAN>.
|
||||
</DD>
|
||||
<DT><STRONG>itrace</STRONG></DT>
|
||||
<DD>If <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="29" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img111.png"
|
||||
ALT="$>0$"></SPAN> print out an informational message about
|
||||
convergence every <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="45" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img166.png"
|
||||
ALT="$itrace$"></SPAN> iterations.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR></DD>
|
||||
<DT><STRONG>irst</STRONG></DT>
|
||||
<DD>An integer specifying the restart parameter.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Values: <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="60" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img167.png"
|
||||
ALT="$irst>0$"></SPAN>. This is employed for the BiCGSTABL or RGMRES
|
||||
methods, otherwise it is ignored.
|
||||
|
||||
<P>
|
||||
<P></P><DT><A NAME="MPI1">19</A>
|
||||
</DD>
|
||||
<DT><STRONG>istop</STRONG></DT>
|
||||
<DD>An integer specifying the stopping criterion.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Values: 1: use the normwise backward error, 2: use the scaled 2-norm
|
||||
of the residual, 3: use the residual reduction in the 2-norm. Default: 2.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra,
|
||||
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition,
|
||||
MIT Press, 1998.</DL>
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>The computed solution.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>iter</STRONG></DT>
|
||||
<DD>The number of iterations performed.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Returned as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>err</STRONG></DT>
|
||||
<DD>The convergence estimate on exit.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Returned as: a real number.
|
||||
</DD>
|
||||
<DT><STRONG>cond</STRONG></DT>
|
||||
<DD>An estimate of the condition number of matrix <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$"></SPAN>; only
|
||||
available with the <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="29" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img168.png"
|
||||
ALT="$CG$"></SPAN> method on real data.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Returned as: a real number. A correct result will be greater than or
|
||||
equal to one; if specified for non-real data, or an error occurred,
|
||||
zero is returned.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1904"
|
||||
HREF="node133.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1900"
|
||||
HREF="node131.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1896"
|
||||
HREF="node131.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1902"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1905"
|
||||
HREF="node133.html">Bibliography</A>
|
||||
<B> Up:</B> <A NAME="tex2html1901"
|
||||
HREF="node131.html">Iterative Methods</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1897"
|
||||
HREF="node131.html">Iterative Methods</A>
|
||||
<B> <A NAME="tex2html1903"
|
||||
HREF="node1.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,219 +1,98 @@
|
||||
<!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>Sparse Matrix class</TITLE>
|
||||
<META NAME="description" CONTENT="Sparse Matrix class">
|
||||
<TITLE>Named Constants</TITLE>
|
||||
<META NAME="description" CONTENT="Named Constants">
|
||||
<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="node42.html">
|
||||
<LINK REL="previous" HREF="node10.html">
|
||||
<LINK REL="up" HREF="node9.html">
|
||||
<LINK REL="previous" HREF="node21.html">
|
||||
<LINK REL="up" HREF="node10.html">
|
||||
<LINK REL="next" HREF="node23.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html503"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html506"
|
||||
HREF="node23.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html499"
|
||||
HREF="node9.html">
|
||||
<A NAME="tex2html502"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html493"
|
||||
<A NAME="tex2html498"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html501"
|
||||
<A NAME="tex2html504"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html504"
|
||||
HREF="node23.html">Sparse Matrix Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html500"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html494"
|
||||
HREF="node21.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html502"
|
||||
<B> Next:</B> <A NAME="tex2html507"
|
||||
HREF="node23.html">Sparse Matrix class</A>
|
||||
<B> Up:</B> <A NAME="tex2html503"
|
||||
HREF="node10.html">Descriptor data structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html499"
|
||||
HREF="node21.html">psb_cd_set_large_threshold Set</A>
|
||||
<B> <A NAME="tex2html505"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00042000000000000000"></A>
|
||||
<A NAME="sec:spmat"></A>
|
||||
<H3><A NAME="SECTION000411200000000000000"></A>
|
||||
<A NAME="sec:cd_constants"></A>
|
||||
<BR>
|
||||
Sparse Matrix class
|
||||
</H2>
|
||||
The spdata<TT>psb_Tspmat_type</TT> class
|
||||
contains all information about the local portion of the sparse matrix and
|
||||
its storage mode. Its design is
|
||||
based on the STATE design pattern [<A
|
||||
HREF="node132.html#DesignPatterns">13</A>] as detailed
|
||||
in [<A
|
||||
HREF="node132.html#Sparse03">11</A>]; the type declaration is shown in
|
||||
figure <A HREF="#fig:spmattype">4</A> where <code>T</code> is a placeholder for the
|
||||
data type and precision variants
|
||||
Named Constants
|
||||
</H3>
|
||||
<DL>
|
||||
<DT><STRONG>S</STRONG></DT>
|
||||
<DD>Single precision real;
|
||||
<DT><STRONG>psb_none_</STRONG></DT>
|
||||
<DD>Generic no-op;
|
||||
</DD>
|
||||
<DT><STRONG>D</STRONG></DT>
|
||||
<DD>Double precision real;
|
||||
<DT><STRONG>psb_root_</STRONG></DT>
|
||||
<DD>Default root process for broadcast and scatter operations;
|
||||
</DD>
|
||||
<DT><STRONG>C</STRONG></DT>
|
||||
<DD>Single precision complex;
|
||||
<DT><STRONG>psb_nohalo_</STRONG></DT>
|
||||
<DD>Do not fetch halo elements;
|
||||
</DD>
|
||||
<DT><STRONG>Z</STRONG></DT>
|
||||
<DD>Double precision complex.
|
||||
<DT><STRONG>psb_halo_</STRONG></DT>
|
||||
<DD>Fetch halo elements from neighbouring processes;
|
||||
</DD>
|
||||
</DL>
|
||||
The actual data is contained in the polymorphic component <code>a%a</code>
|
||||
of type spbasedata<TT>psb_T_base_sparse_mat</TT>; its
|
||||
specific layout can be chosen dynamically among the predefined types,
|
||||
or an entirely new storage layout can be implemented and passed to the
|
||||
library at runtime via the <code>psb_spasb</code> routine.
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:spmattype"></A><A NAME="920"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
|
||||
The PSBLAS defined data type that
|
||||
contains a sparse matrix.</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV><TABLE WIDTH="85%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
type :: psb_Tspmat_type
|
||||
class(psb_T_base_sparse_mat), allocatable :: a
|
||||
end type psb_Tspmat_type
|
||||
</PRE></TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
The following very common formats are precompiled in PSBLAS and thus
|
||||
are always available:
|
||||
<DL>
|
||||
<DT><STRONG>psb_T_coo_sparse_mat</STRONG></DT>
|
||||
<DD>Coordinate storage;
|
||||
<DT><STRONG>psb_sum_</STRONG></DT>
|
||||
<DD>Sum overlapped elements
|
||||
</DD>
|
||||
<DT><STRONG>psb_T_csr_sparse_mat</STRONG></DT>
|
||||
<DD>Compressed storage by rows;
|
||||
<DT><STRONG>psb_avg_</STRONG></DT>
|
||||
<DD>Average overlapped elements
|
||||
</DD>
|
||||
<DT><STRONG>psb_T_csc_sparse_mat</STRONG></DT>
|
||||
<DD>Compressed storage by columns;
|
||||
<DT><STRONG>psb_comm_halo_</STRONG></DT>
|
||||
<DD>Exchange data based on the <code>halo_index</code>
|
||||
list;
|
||||
</DD>
|
||||
</DL>
|
||||
The inner sparse matrix has an associated state, which can take the
|
||||
following values:
|
||||
<DL>
|
||||
<DT><STRONG>Build:</STRONG></DT>
|
||||
<DD>State entered after the first allocation, and before the
|
||||
first assembly; in this state it is possible to add nonzero entries.
|
||||
<DT><STRONG>psb_comm_ext_</STRONG></DT>
|
||||
<DD>Exchange data based on the <code>ext_index</code>
|
||||
list;
|
||||
</DD>
|
||||
<DT><STRONG>Assembled:</STRONG></DT>
|
||||
<DD>State entered after the assembly; computations using
|
||||
the sparse matrix, such as matrix-vector products, are only possible
|
||||
in this state;
|
||||
<DT><STRONG>psb_comm_ovr_</STRONG></DT>
|
||||
<DD>Exchange data based on the <code>ovrlap_index</code>
|
||||
list;
|
||||
</DD>
|
||||
<DT><STRONG>Update:</STRONG></DT>
|
||||
<DD>State entered after a reinitalization; this is used to
|
||||
handle applications in which the same sparsity pattern is used
|
||||
multiple times with different coefficients. In this state it is only
|
||||
possible to enter coefficients for already existing nonzero entries.
|
||||
<DT><STRONG>psb_comm_mov_</STRONG></DT>
|
||||
<DD>Exchange data based on the <code>ovr_mst_idx</code>
|
||||
list;
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
</DL>
|
||||
The only storage variant supporting the build state is COO; all other
|
||||
variants are obtained by conversion to/from it.
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html505"
|
||||
HREF="node23.html">Sparse Matrix Methods</A>
|
||||
<LI><A NAME="tex2html506"
|
||||
HREF="node24.html">get_nrows -- Get number of rows in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html507"
|
||||
HREF="node25.html">get_ncols -- Get number of columns in a sparse
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html508"
|
||||
HREF="node26.html">get_nnzeros -- Get number of nonzero elements
|
||||
in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html509"
|
||||
HREF="node27.html">get_size -- Get maximum number of nonzero elements
|
||||
in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html510"
|
||||
HREF="node28.html">sizeof -- Get memory occupation in bytes
|
||||
of a sparse matrix</A>
|
||||
<LI><A NAME="tex2html511"
|
||||
HREF="node29.html">get_fmt -- Short description of the dynamic type</A>
|
||||
<LI><A NAME="tex2html512"
|
||||
HREF="node30.html">is_bld, is_upd, is_asb -- Status check</A>
|
||||
<LI><A NAME="tex2html513"
|
||||
HREF="node31.html">is_lower, is_upper, is_triangle, is_unit --
|
||||
Format check</A>
|
||||
<LI><A NAME="tex2html514"
|
||||
HREF="node32.html">cscnv -- Convert to a different storage format</A>
|
||||
<LI><A NAME="tex2html515"
|
||||
HREF="node33.html">csclip -- Reduce to a submatrix</A>
|
||||
<LI><A NAME="tex2html516"
|
||||
HREF="node34.html">clean_zeros -- Eliminate zero coefficients</A>
|
||||
<LI><A NAME="tex2html517"
|
||||
HREF="node35.html">get_diag -- Get main diagonal</A>
|
||||
<LI><A NAME="tex2html518"
|
||||
HREF="node36.html">clip_diag -- Cut out main diagonal</A>
|
||||
<LI><A NAME="tex2html519"
|
||||
HREF="node37.html">tril -- Return the lower triangle</A>
|
||||
<LI><A NAME="tex2html520"
|
||||
HREF="node38.html">triu -- Return the upper triangle</A>
|
||||
<LI><A NAME="tex2html521"
|
||||
HREF="node39.html">psb_set_mat_default -- Set default storage format</A>
|
||||
<LI><A NAME="tex2html522"
|
||||
HREF="node40.html">clone -- Clone current object</A>
|
||||
<LI><A NAME="tex2html523"
|
||||
HREF="node41.html">Named Constants</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html503"
|
||||
HREF="node23.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html499"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html493"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html501"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html504"
|
||||
HREF="node23.html">Sparse Matrix Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html500"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html494"
|
||||
HREF="node21.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html502"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,62 +1,217 @@
|
||||
<!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>Sparse Matrix Methods</TITLE>
|
||||
<META NAME="description" CONTENT="Sparse Matrix Methods">
|
||||
<TITLE>Sparse Matrix class</TITLE>
|
||||
<META NAME="description" CONTENT="Sparse Matrix class">
|
||||
<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="node24.html">
|
||||
<LINK REL="previous" HREF="node22.html">
|
||||
<LINK REL="up" HREF="node22.html">
|
||||
<LINK REL="next" HREF="node43.html">
|
||||
<LINK REL="previous" HREF="node10.html">
|
||||
<LINK REL="up" HREF="node9.html">
|
||||
<LINK REL="next" HREF="node24.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html534"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html518"
|
||||
HREF="node24.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html530"
|
||||
HREF="node22.html">
|
||||
<A NAME="tex2html514"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html524"
|
||||
<A NAME="tex2html508"
|
||||
HREF="node22.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html532"
|
||||
<A NAME="tex2html516"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html535"
|
||||
HREF="node24.html">get_nrows Get</A>
|
||||
<B> Up:</B> <A NAME="tex2html531"
|
||||
HREF="node22.html">Sparse Matrix class</A>
|
||||
<B> Previous:</B> <A NAME="tex2html525"
|
||||
HREF="node22.html">Sparse Matrix class</A>
|
||||
<B> <A NAME="tex2html533"
|
||||
<B> Next:</B> <A NAME="tex2html519"
|
||||
HREF="node24.html">Sparse Matrix Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html515"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html509"
|
||||
HREF="node22.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html517"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION00042100000000000000">
|
||||
Sparse Matrix Methods</A>
|
||||
</H3>
|
||||
<H2><A NAME="SECTION00042000000000000000"></A>
|
||||
<A NAME="sec:spmat"></A>
|
||||
<BR>
|
||||
Sparse Matrix class
|
||||
</H2>
|
||||
The spdata<TT>psb_Tspmat_type</TT> class
|
||||
contains all information about the local portion of the sparse matrix and
|
||||
its storage mode. Its design is
|
||||
based on the STATE design pattern [<A
|
||||
HREF="node133.html#DesignPatterns">13</A>] as detailed
|
||||
in [<A
|
||||
HREF="node133.html#Sparse03">11</A>]; the type declaration is shown in
|
||||
figure <A HREF="#fig:spmattype">4</A> where <code>T</code> is a placeholder for the
|
||||
data type and precision variants
|
||||
<DL>
|
||||
<DT><STRONG>S</STRONG></DT>
|
||||
<DD>Single precision real;
|
||||
</DD>
|
||||
<DT><STRONG>D</STRONG></DT>
|
||||
<DD>Double precision real;
|
||||
</DD>
|
||||
<DT><STRONG>C</STRONG></DT>
|
||||
<DD>Single precision complex;
|
||||
</DD>
|
||||
<DT><STRONG>Z</STRONG></DT>
|
||||
<DD>Double precision complex.
|
||||
</DD>
|
||||
</DL>
|
||||
The actual data is contained in the polymorphic component <code>a%a</code>
|
||||
of type spbasedata<TT>psb_T_base_sparse_mat</TT>; its
|
||||
specific layout can be chosen dynamically among the predefined types,
|
||||
or an entirely new storage layout can be implemented and passed to the
|
||||
library at runtime via the <code>psb_spasb</code> routine.
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:spmattype"></A><A NAME="934"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
|
||||
The PSBLAS defined data type that
|
||||
contains a sparse matrix.</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV><TABLE WIDTH="85%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
type :: psb_Tspmat_type
|
||||
class(psb_T_base_sparse_mat), allocatable :: a
|
||||
end type psb_Tspmat_type
|
||||
</PRE></TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
The following very common formats are precompiled in PSBLAS and thus
|
||||
are always available:
|
||||
<DL>
|
||||
<DT><STRONG>psb_T_coo_sparse_mat</STRONG></DT>
|
||||
<DD>Coordinate storage;
|
||||
</DD>
|
||||
<DT><STRONG>psb_T_csr_sparse_mat</STRONG></DT>
|
||||
<DD>Compressed storage by rows;
|
||||
</DD>
|
||||
<DT><STRONG>psb_T_csc_sparse_mat</STRONG></DT>
|
||||
<DD>Compressed storage by columns;
|
||||
</DD>
|
||||
</DL>
|
||||
The inner sparse matrix has an associated state, which can take the
|
||||
following values:
|
||||
<DL>
|
||||
<DT><STRONG>Build:</STRONG></DT>
|
||||
<DD>State entered after the first allocation, and before the
|
||||
first assembly; in this state it is possible to add nonzero entries.
|
||||
</DD>
|
||||
<DT><STRONG>Assembled:</STRONG></DT>
|
||||
<DD>State entered after the assembly; computations using
|
||||
the sparse matrix, such as matrix-vector products, are only possible
|
||||
in this state;
|
||||
</DD>
|
||||
<DT><STRONG>Update:</STRONG></DT>
|
||||
<DD>State entered after a reinitalization; this is used to
|
||||
handle applications in which the same sparsity pattern is used
|
||||
multiple times with different coefficients. In this state it is only
|
||||
possible to enter coefficients for already existing nonzero entries.
|
||||
</DD>
|
||||
</DL>
|
||||
The only storage variant supporting the build state is COO; all other
|
||||
variants are obtained by conversion to/from it.
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html520"
|
||||
HREF="node24.html">Sparse Matrix Methods</A>
|
||||
<LI><A NAME="tex2html521"
|
||||
HREF="node25.html">get_nrows -- Get number of rows in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html522"
|
||||
HREF="node26.html">get_ncols -- Get number of columns in a sparse
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html523"
|
||||
HREF="node27.html">get_nnzeros -- Get number of nonzero elements
|
||||
in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html524"
|
||||
HREF="node28.html">get_size -- Get maximum number of nonzero elements
|
||||
in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html525"
|
||||
HREF="node29.html">sizeof -- Get memory occupation in bytes
|
||||
of a sparse matrix</A>
|
||||
<LI><A NAME="tex2html526"
|
||||
HREF="node30.html">get_fmt -- Short description of the dynamic type</A>
|
||||
<LI><A NAME="tex2html527"
|
||||
HREF="node31.html">is_bld, is_upd, is_asb -- Status check</A>
|
||||
<LI><A NAME="tex2html528"
|
||||
HREF="node32.html">is_lower, is_upper, is_triangle, is_unit --
|
||||
Format check</A>
|
||||
<LI><A NAME="tex2html529"
|
||||
HREF="node33.html">cscnv -- Convert to a different storage format</A>
|
||||
<LI><A NAME="tex2html530"
|
||||
HREF="node34.html">csclip -- Reduce to a submatrix</A>
|
||||
<LI><A NAME="tex2html531"
|
||||
HREF="node35.html">clean_zeros -- Eliminate zero coefficients</A>
|
||||
<LI><A NAME="tex2html532"
|
||||
HREF="node36.html">get_diag -- Get main diagonal</A>
|
||||
<LI><A NAME="tex2html533"
|
||||
HREF="node37.html">clip_diag -- Cut out main diagonal</A>
|
||||
<LI><A NAME="tex2html534"
|
||||
HREF="node38.html">tril -- Return the lower triangle</A>
|
||||
<LI><A NAME="tex2html535"
|
||||
HREF="node39.html">triu -- Return the upper triangle</A>
|
||||
<LI><A NAME="tex2html536"
|
||||
HREF="node40.html">psb_set_mat_default -- Set default storage format</A>
|
||||
<LI><A NAME="tex2html537"
|
||||
HREF="node41.html">clone -- Clone current object</A>
|
||||
<LI><A NAME="tex2html538"
|
||||
HREF="node42.html">Named Constants</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html518"
|
||||
HREF="node24.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html514"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html508"
|
||||
HREF="node22.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html516"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html519"
|
||||
HREF="node24.html">Sparse Matrix Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html515"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html509"
|
||||
HREF="node22.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html517"
|
||||
HREF="node1.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,167 +1,82 @@
|
||||
<!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>Dense Vector Data Structure</TITLE>
|
||||
<META NAME="description" CONTENT="Dense Vector Data Structure">
|
||||
<TITLE>Named Constants</TITLE>
|
||||
<META NAME="description" CONTENT="Named Constants">
|
||||
<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="node49.html">
|
||||
<LINK REL="previous" HREF="node22.html">
|
||||
<LINK REL="up" HREF="node9.html">
|
||||
<LINK REL="previous" HREF="node41.html">
|
||||
<LINK REL="up" HREF="node23.html">
|
||||
<LINK REL="next" HREF="node43.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html760"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html763"
|
||||
HREF="node43.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html756"
|
||||
HREF="node9.html">
|
||||
<A NAME="tex2html759"
|
||||
HREF="node23.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html750"
|
||||
<A NAME="tex2html755"
|
||||
HREF="node41.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html758"
|
||||
<A NAME="tex2html761"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html761"
|
||||
HREF="node43.html">Vector Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html757"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html751"
|
||||
HREF="node41.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html759"
|
||||
<B> Next:</B> <A NAME="tex2html764"
|
||||
HREF="node43.html">Dense Vector Data Structure</A>
|
||||
<B> Up:</B> <A NAME="tex2html760"
|
||||
HREF="node23.html">Sparse Matrix class</A>
|
||||
<B> Previous:</B> <A NAME="tex2html756"
|
||||
HREF="node41.html">clone Clone</A>
|
||||
<B> <A NAME="tex2html762"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00043000000000000000"></A>
|
||||
<A NAME="sec:vecttype"></A>
|
||||
<H3><A NAME="SECTION000421900000000000000"></A>
|
||||
<A NAME="sec:sp_constants"></A>
|
||||
<BR>
|
||||
Dense Vector Data Structure
|
||||
</H2>
|
||||
The vdata<TT>psb_T_vect_type</TT> data structure
|
||||
encapsulates the dense vectors in a way similar to sparse matrices,
|
||||
i.e. including a base type vbasedata<TT> psb_T_base_vect_type</TT>.
|
||||
The user will not, in general, access the vector components directly,
|
||||
but rather via the routines of sec. <A HREF="node70.html#sec:toolsrout">6</A>. Among other
|
||||
simple things, we define here an extraction method that can be used to
|
||||
get a full copy of the part of the vector stored on the local
|
||||
process.
|
||||
|
||||
<P>
|
||||
The type declaration is shown in
|
||||
figure <A HREF="#fig:vectype">5</A> where <code>T</code> is a placeholder for the
|
||||
data type and precision variants
|
||||
Named Constants
|
||||
</H3>
|
||||
<DL>
|
||||
<DT><STRONG>I</STRONG></DT>
|
||||
<DD>Integer;
|
||||
<DT><STRONG>psb_dupl_ovwrt_</STRONG></DT>
|
||||
<DD>Duplicate coefficients should be overwritten
|
||||
(i.e. ignore duplications)
|
||||
</DD>
|
||||
<DT><STRONG>psb_dupl_add_</STRONG></DT>
|
||||
<DD>Duplicate coefficients should be added;
|
||||
</DD>
|
||||
<DT><STRONG>S</STRONG></DT>
|
||||
<DD>Single precision real;
|
||||
<DT><STRONG>psb_dupl_err_</STRONG></DT>
|
||||
<DD>Duplicate coefficients should trigger an error conditino
|
||||
</DD>
|
||||
<DT><STRONG>D</STRONG></DT>
|
||||
<DD>Double precision real;
|
||||
<DT><STRONG>psb_upd_dflt_</STRONG></DT>
|
||||
<DD>Default update strategy for matrix coefficients;
|
||||
</DD>
|
||||
<DT><STRONG>C</STRONG></DT>
|
||||
<DD>Single precision complex;
|
||||
<DT><STRONG>psb_upd_srch_</STRONG></DT>
|
||||
<DD>Update strategy based on search into the data structure;
|
||||
</DD>
|
||||
<DT><STRONG>Z</STRONG></DT>
|
||||
<DD>Double precision complex.
|
||||
<DT><STRONG>psb_upd_perm_</STRONG></DT>
|
||||
<DD>Update strategy based on additional
|
||||
permutation data (see tools routine description).
|
||||
</DD>
|
||||
</DL>
|
||||
The actual data is contained in the polymorphic component <code>v%v</code>;
|
||||
the separation between the application and the actual data is
|
||||
essential for cases where it is necessary to link to data storage made
|
||||
available elsewhere outside the direct control of the
|
||||
compiler/application, e.g. data stored in a graphics accelerator's
|
||||
private memory.
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:vectype"></A><A NAME="923"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
|
||||
The PSBLAS defined data type that
|
||||
contains a dense vector.</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV><TABLE WIDTH="85%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
type psb_T_base_vect_type
|
||||
TYPE(KIND_), allocatable :: v(:)
|
||||
end type psb_T_base_vect_type
|
||||
|
||||
type psb_T_vect_type
|
||||
class(psb_T_base_vect_type), allocatable :: v
|
||||
end type psb_T_vect_type
|
||||
</PRE></TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html762"
|
||||
HREF="node43.html">Vector Methods</A>
|
||||
<LI><A NAME="tex2html763"
|
||||
HREF="node44.html">get_nrows -- Get number of rows in a dense vector</A>
|
||||
<LI><A NAME="tex2html764"
|
||||
HREF="node45.html">sizeof -- Get memory occupation in bytes
|
||||
of a dense vector</A>
|
||||
<LI><A NAME="tex2html765"
|
||||
HREF="node46.html">set -- Set contents of the vector</A>
|
||||
<LI><A NAME="tex2html766"
|
||||
HREF="node47.html">get_vect -- Get a copy of the vector contents</A>
|
||||
<LI><A NAME="tex2html767"
|
||||
HREF="node48.html">clone -- Clone current object</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html760"
|
||||
HREF="node43.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html756"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html750"
|
||||
HREF="node41.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html758"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html761"
|
||||
HREF="node43.html">Vector Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html757"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html751"
|
||||
HREF="node41.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html759"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,60 +1,165 @@
|
||||
<!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>Vector Methods</TITLE>
|
||||
<META NAME="description" CONTENT="Vector Methods">
|
||||
<TITLE>Dense Vector Data Structure</TITLE>
|
||||
<META NAME="description" CONTENT="Dense Vector Data Structure">
|
||||
<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="node44.html">
|
||||
<LINK REL="previous" HREF="node42.html">
|
||||
<LINK REL="up" HREF="node42.html">
|
||||
<LINK REL="next" HREF="node50.html">
|
||||
<LINK REL="previous" HREF="node23.html">
|
||||
<LINK REL="up" HREF="node9.html">
|
||||
<LINK REL="next" HREF="node44.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html778"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html775"
|
||||
HREF="node44.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html774"
|
||||
HREF="node42.html">
|
||||
<A NAME="tex2html771"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html768"
|
||||
<A NAME="tex2html765"
|
||||
HREF="node42.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html776"
|
||||
<A NAME="tex2html773"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html779"
|
||||
HREF="node44.html">get_nrows Get</A>
|
||||
<B> Up:</B> <A NAME="tex2html775"
|
||||
HREF="node42.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html769"
|
||||
HREF="node42.html">Dense Vector Data Structure</A>
|
||||
<B> <A NAME="tex2html777"
|
||||
<B> Next:</B> <A NAME="tex2html776"
|
||||
HREF="node44.html">Vector Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html772"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html766"
|
||||
HREF="node42.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html774"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION00043100000000000000">
|
||||
Vector Methods</A>
|
||||
</H3>
|
||||
<H2><A NAME="SECTION00043000000000000000"></A>
|
||||
<A NAME="sec:vecttype"></A>
|
||||
<BR>
|
||||
Dense Vector Data Structure
|
||||
</H2>
|
||||
The vdata<TT>psb_T_vect_type</TT> data structure
|
||||
encapsulates the dense vectors in a way similar to sparse matrices,
|
||||
i.e. including a base type vbasedata<TT> psb_T_base_vect_type</TT>.
|
||||
The user will not, in general, access the vector components directly,
|
||||
but rather via the routines of sec. <A HREF="node71.html#sec:toolsrout">6</A>. Among other
|
||||
simple things, we define here an extraction method that can be used to
|
||||
get a full copy of the part of the vector stored on the local
|
||||
process.
|
||||
|
||||
<P>
|
||||
The type declaration is shown in
|
||||
figure <A HREF="#fig:vectype">5</A> where <code>T</code> is a placeholder for the
|
||||
data type and precision variants
|
||||
<DL>
|
||||
<DT><STRONG>I</STRONG></DT>
|
||||
<DD>Integer;
|
||||
</DD>
|
||||
<DT><STRONG>S</STRONG></DT>
|
||||
<DD>Single precision real;
|
||||
</DD>
|
||||
<DT><STRONG>D</STRONG></DT>
|
||||
<DD>Double precision real;
|
||||
</DD>
|
||||
<DT><STRONG>C</STRONG></DT>
|
||||
<DD>Single precision complex;
|
||||
</DD>
|
||||
<DT><STRONG>Z</STRONG></DT>
|
||||
<DD>Double precision complex.
|
||||
</DD>
|
||||
</DL>
|
||||
The actual data is contained in the polymorphic component <code>v%v</code>;
|
||||
the separation between the application and the actual data is
|
||||
essential for cases where it is necessary to link to data storage made
|
||||
available elsewhere outside the direct control of the
|
||||
compiler/application, e.g. data stored in a graphics accelerator's
|
||||
private memory.
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:vectype"></A><A NAME="937"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
|
||||
The PSBLAS defined data type that
|
||||
contains a dense vector.</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV><TABLE WIDTH="85%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
type psb_T_base_vect_type
|
||||
TYPE(KIND_), allocatable :: v(:)
|
||||
end type psb_T_base_vect_type
|
||||
|
||||
type psb_T_vect_type
|
||||
class(psb_T_base_vect_type), allocatable :: v
|
||||
end type psb_T_vect_type
|
||||
</PRE></TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER">
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html777"
|
||||
HREF="node44.html">Vector Methods</A>
|
||||
<LI><A NAME="tex2html778"
|
||||
HREF="node45.html">get_nrows -- Get number of rows in a dense vector</A>
|
||||
<LI><A NAME="tex2html779"
|
||||
HREF="node46.html">sizeof -- Get memory occupation in bytes
|
||||
of a dense vector</A>
|
||||
<LI><A NAME="tex2html780"
|
||||
HREF="node47.html">set -- Set contents of the vector</A>
|
||||
<LI><A NAME="tex2html781"
|
||||
HREF="node48.html">get_vect -- Get a copy of the vector contents</A>
|
||||
<LI><A NAME="tex2html782"
|
||||
HREF="node49.html">clone -- Clone current object</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html775"
|
||||
HREF="node44.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html771"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html765"
|
||||
HREF="node42.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html773"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html776"
|
||||
HREF="node44.html">Vector Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html772"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html766"
|
||||
HREF="node42.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html774"
|
||||
HREF="node1.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,279 +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>psb_geaxpby -- General Dense Matrix Sum</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geaxpby -- General Dense Matrix Sum">
|
||||
<TITLE>Computational routines</TITLE>
|
||||
<META NAME="description" CONTENT="Computational routines">
|
||||
<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="node53.html">
|
||||
<LINK REL="previous" HREF="node51.html">
|
||||
<LINK REL="up" HREF="node51.html">
|
||||
<LINK REL="next" HREF="node66.html">
|
||||
<LINK REL="previous" HREF="node9.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node53.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html895"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html885"
|
||||
HREF="node53.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html891"
|
||||
HREF="node51.html">
|
||||
<A NAME="tex2html881"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html885"
|
||||
<A NAME="tex2html875"
|
||||
HREF="node51.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html893"
|
||||
<A NAME="tex2html883"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html896"
|
||||
HREF="node53.html">psb_gedot Dot</A>
|
||||
<B> Up:</B> <A NAME="tex2html892"
|
||||
HREF="node51.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html886"
|
||||
HREF="node51.html">Computational routines</A>
|
||||
<B> <A NAME="tex2html894"
|
||||
<B> Next:</B> <A NAME="tex2html886"
|
||||
HREF="node53.html">psb_geaxpby General</A>
|
||||
<B> Up:</B> <A NAME="tex2html882"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html876"
|
||||
HREF="node51.html">Heap data structure</A>
|
||||
<B> <A NAME="tex2html884"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00051000000000000000">
|
||||
psb_geaxpby -- General Dense Matrix Sum</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This subroutine is an interface to the computational kernel for
|
||||
dense matrix sum:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
y \leftarrow \alpha\> x+ \beta y
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="93" HEIGHT="27" BORDER="0"
|
||||
SRC="img19.png"
|
||||
ALT="\begin{displaymath}y \leftarrow \alpha\> x+ \beta y \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_geaxpby(alpha, x, beta, y, desc_a, info)
|
||||
</PRE>
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1948"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 1:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">, <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">, <IMG
|
||||
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img22.png"
|
||||
ALT="$\alpha$">, <IMG
|
||||
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img23.png"
|
||||
ALT="$\beta$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_geaxpby</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_geaxpby</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geaxpby</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geaxpby</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
</DIV><P></P>
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>alpha</STRONG></DT>
|
||||
<DD>the scalar <IMG
|
||||
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img22.png"
|
||||
ALT="$\alpha$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a number of the data
|
||||
type indicated in Table <A HREF="#tab:f90axpby">1</A>.
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
|
||||
containing numbers of type
|
||||
specified in Table <A HREF="#tab:f90axpby">1</A>. The rank of <IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"> must be the same of <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">.
|
||||
</DD>
|
||||
<DT><STRONG>beta</STRONG></DT>
|
||||
<DD>the scalar <IMG
|
||||
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img23.png"
|
||||
ALT="$\beta$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a number of the data type indicated in Table <A HREF="#tab:f90axpby">1</A>.
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>the local portion of the global dense matrix
|
||||
<IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> containing numbers of the type
|
||||
indicated in Table <A HREF="#tab:f90axpby">1</A>. The rank of <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"> must be the same of <IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
<P>
|
||||
</DD>
|
||||
</DL>
|
||||
<H1><A NAME="SECTION00050000000000000000">
|
||||
Computational routines</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>the local portion of result submatrix <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> containing numbers of the type
|
||||
indicated in Table <A HREF="#tab:f90axpby">1</A>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</DL>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html895"
|
||||
HREF="node53.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html891"
|
||||
HREF="node51.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html885"
|
||||
HREF="node51.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html893"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html896"
|
||||
HREF="node53.html">psb_gedot Dot</A>
|
||||
<B> Up:</B> <A NAME="tex2html892"
|
||||
HREF="node51.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html886"
|
||||
HREF="node51.html">Computational routines</A>
|
||||
<B> <A NAME="tex2html894"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html887"
|
||||
HREF="node53.html">psb_geaxpby -- General Dense Matrix Sum</A>
|
||||
<LI><A NAME="tex2html888"
|
||||
HREF="node54.html">psb_gedot -- Dot Product</A>
|
||||
<LI><A NAME="tex2html889"
|
||||
HREF="node55.html">psb_gedots -- Generalized Dot Product</A>
|
||||
<LI><A NAME="tex2html890"
|
||||
HREF="node56.html">psb_normi -- Infinity-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html891"
|
||||
HREF="node57.html">psb_geamaxs -- Generalized Infinity Norm</A>
|
||||
<LI><A NAME="tex2html892"
|
||||
HREF="node58.html">psb_norm1 -- 1-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html893"
|
||||
HREF="node59.html">psb_geasums -- Generalized 1-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html894"
|
||||
HREF="node60.html">psb_norm2 -- 2-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html895"
|
||||
HREF="node61.html">psb_genrm2s -- Generalized 2-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html896"
|
||||
HREF="node62.html">psb_norm1 -- 1-Norm of Sparse Matrix</A>
|
||||
<LI><A NAME="tex2html897"
|
||||
HREF="node63.html">psb_normi -- Infinity Norm of Sparse Matrix</A>
|
||||
<LI><A NAME="tex2html898"
|
||||
HREF="node64.html">psb_spmm -- Sparse Matrix by Dense Matrix
|
||||
Product</A>
|
||||
<LI><A NAME="tex2html899"
|
||||
HREF="node65.html">psb_spsm -- Triangular System Solve</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,79 +1,469 @@
|
||||
<!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>Communication routines</TITLE>
|
||||
<META NAME="description" CONTENT="Communication routines">
|
||||
<TITLE>psb_spsm -- Triangular System Solve</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spsm -- Triangular System Solve">
|
||||
<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="node70.html">
|
||||
<LINK REL="previous" HREF="node51.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="previous" HREF="node64.html">
|
||||
<LINK REL="up" HREF="node52.html">
|
||||
<LINK REL="next" HREF="node66.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1049"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html1052"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1045"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html1048"
|
||||
HREF="node52.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1039"
|
||||
<A NAME="tex2html1044"
|
||||
HREF="node64.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1047"
|
||||
<A NAME="tex2html1050"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1050"
|
||||
HREF="node66.html">psb_halo Halo</A>
|
||||
<B> Up:</B> <A NAME="tex2html1046"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1040"
|
||||
HREF="node64.html">psb_spsm Triangular</A>
|
||||
<B> <A NAME="tex2html1048"
|
||||
<B> Next:</B> <A NAME="tex2html1053"
|
||||
HREF="node66.html">Communication routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html1049"
|
||||
HREF="node52.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1045"
|
||||
HREF="node64.html">psb_spmm Sparse</A>
|
||||
<B> <A NAME="tex2html1051"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00060000000000000000">
|
||||
Communication routines</A>
|
||||
</H1>The routines in this chapter implement various global communication operators
|
||||
on vectors associated with a discretization mesh. For auxiliary communication
|
||||
routines not tied to a discretization space see <A HREF="node70.html#sec:toolsrout">6</A>.
|
||||
<H2><A NAME="SECTION000513000000000000000">
|
||||
psb_spsm -- Triangular System Solve</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This subroutine computes the Triangular System Solve:
|
||||
|
||||
<P>
|
||||
<P></P>
|
||||
<DIV ALIGN="CENTER" CLASS="mathdisplay">
|
||||
<!-- MATH
|
||||
\begin{eqnarray*}
|
||||
y &\leftarrow& \alpha T^{-1} x + \beta y\\
|
||||
y &\leftarrow& \alpha D T^{-1} x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-1} D x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-T} x + \beta y\\
|
||||
y &\leftarrow& \alpha D T^{-T} x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-T} D x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-H} x + \beta y\\
|
||||
y &\leftarrow& \alpha D T^{-H} x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-H} D x + \beta y\\
|
||||
\end{eqnarray*}
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="160" HEIGHT="239" BORDER="0"
|
||||
SRC="img50.png"
|
||||
ALT="\begin{eqnarray*}
|
||||
y &\leftarrow& \alpha T^{-1} x + \beta y\\
|
||||
y &\leftarrow& \al...
|
||||
...-H} x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-H} D x + \beta y\\
|
||||
\end{eqnarray*}"></DIV>
|
||||
<BR CLEAR="ALL"><P></P>
|
||||
<BR CLEAR="ALL"><P></P>
|
||||
|
||||
<P>
|
||||
where:
|
||||
<DL>
|
||||
<DT><STRONG><SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></SPAN></STRONG></DT>
|
||||
<DD>is the global dense matrix <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img47.png"
|
||||
ALT="$x_{:, :}$"></SPAN>
|
||||
</DD>
|
||||
<DT><STRONG><SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"></SPAN></STRONG></DT>
|
||||
<DD>is the global dense matrix <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="23" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img48.png"
|
||||
ALT="$y_{:, :}$"></SPAN>
|
||||
</DD>
|
||||
<DT><STRONG><SPAN CLASS="MATH"><IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img51.png"
|
||||
ALT="$T$"></SPAN></STRONG></DT>
|
||||
<DD>is the global sparse block triangular submatrix <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img51.png"
|
||||
ALT="$T$"></SPAN>
|
||||
</DD>
|
||||
<DT><STRONG><SPAN CLASS="MATH"><IMG
|
||||
WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img52.png"
|
||||
ALT="$D$"></SPAN></STRONG></DT>
|
||||
<DD>is the scaling diagonal matrix.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_spsm(alpha, t, x, beta, y, desc_a, info)
|
||||
call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
|
||||
& trans, unit, choice, diag, work)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1989"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 13:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><SPAN CLASS="MATH"><IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img51.png"
|
||||
ALT="$T$"></SPAN>, <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></SPAN>, <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"></SPAN>, <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img52.png"
|
||||
ALT="$D$"></SPAN>, <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img22.png"
|
||||
ALT="$\alpha$"></SPAN>, <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img23.png"
|
||||
ALT="$\beta$"></SPAN></TD>
|
||||
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_spsm</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_spsm</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spsm</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spsm</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
</DIV><P></P>
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html1051"
|
||||
HREF="node66.html">psb_halo -- Halo Data Communication</A>
|
||||
<LI><A NAME="tex2html1052"
|
||||
HREF="node67.html">psb_ovrl -- Overlap Update</A>
|
||||
<LI><A NAME="tex2html1053"
|
||||
HREF="node68.html">psb_gather -- Gather Global Dense Matrix</A>
|
||||
<LI><A NAME="tex2html1054"
|
||||
HREF="node69.html">psb_scatter -- Scatter Global Dense Matrix</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>alpha</STRONG></DT>
|
||||
<DD>the scalar <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img22.png"
|
||||
ALT="$\alpha$"></SPAN>.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a number of the data type indicated in
|
||||
Table <A HREF="#tab:f90spsm">13</A>.
|
||||
</DD>
|
||||
<DT><STRONG>t</STRONG></DT>
|
||||
<DD>the global portion of the sparse matrix
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img51.png"
|
||||
ALT="$T$"></SPAN>.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object type specified in
|
||||
§ <A HREF="node9.html#sec:datastruct">3</A>.
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></SPAN>.
|
||||
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
|
||||
containing numbers of type specified in
|
||||
Table <A HREF="#tab:f90spsm">13</A>. The rank of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></SPAN> must be the same of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"></SPAN>.
|
||||
</DD>
|
||||
<DT><STRONG>beta</STRONG></DT>
|
||||
<DD>the scalar <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img23.png"
|
||||
ALT="$\beta$"></SPAN>.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a number of the data type indicated in Table <A HREF="#tab:f90spsm">13</A>.
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"></SPAN>.
|
||||
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
|
||||
containing numbers of type specified in
|
||||
Table <A HREF="#tab:f90spsm">13</A>. The rank of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"></SPAN> must be the same of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></SPAN>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>trans</STRONG></DT>
|
||||
<DD>specify with <EM>unitd</EM> the operation to perform.
|
||||
<DL>
|
||||
<DT><STRONG>trans = 'N'</STRONG></DT>
|
||||
<DD>the operation is with no transposed matrix
|
||||
</DD>
|
||||
<DT><STRONG>trans = 'T'</STRONG></DT>
|
||||
<DD>the operation is with transposed matrix.
|
||||
</DD>
|
||||
<DT><STRONG>trans = 'C'</STRONG></DT>
|
||||
<DD>the operation is with conjugate transposed matrix.
|
||||
</DD>
|
||||
</DL>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Default: <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="79" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img49.png"
|
||||
ALT="$trans = N$"></SPAN>
|
||||
<BR>
|
||||
Specified as: a character variable.
|
||||
</DD>
|
||||
<DT><STRONG>unitd</STRONG></DT>
|
||||
<DD>specify with <EM>trans</EM> the operation to perform.
|
||||
<DL>
|
||||
<DT><STRONG>unitd = 'U'</STRONG></DT>
|
||||
<DD>the operation is with no scaling
|
||||
</DD>
|
||||
<DT><STRONG>unitd = 'L'</STRONG></DT>
|
||||
<DD>the operation is with left scaling
|
||||
</DD>
|
||||
<DT><STRONG>unitd = 'R'</STRONG></DT>
|
||||
<DD>the operation is with right scaling.
|
||||
</DD>
|
||||
</DL>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Default: <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="76" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img53.png"
|
||||
ALT="$unitd = U$"></SPAN>
|
||||
<BR>
|
||||
Specified as: a character variable.
|
||||
</DD>
|
||||
<DT><STRONG>choice</STRONG></DT>
|
||||
<DD>specifies the update of overlap elements to be performed
|
||||
on exit:
|
||||
<DL>
|
||||
<DT></DT>
|
||||
<DD><code>psb_none_</code>
|
||||
</DD>
|
||||
<DT></DT>
|
||||
<DD><code>psb_sum_</code>
|
||||
</DD>
|
||||
<DT></DT>
|
||||
<DD><code>psb_avg_</code>
|
||||
</DD>
|
||||
<DT></DT>
|
||||
<DD><code>psb_square_root_</code>
|
||||
</DD>
|
||||
</DL>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Default: <code>psb_avg_</code>
|
||||
<BR>
|
||||
Specified as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>diag</STRONG></DT>
|
||||
<DD>the diagonal scaling matrix.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Default: <!-- MATH
|
||||
$diag(1) = 1 (no scaling)$
|
||||
-->
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="164" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img54.png"
|
||||
ALT="$diag(1) = 1 (no scaling)$"></SPAN>
|
||||
<BR>
|
||||
Specified as: a rank one array containing numbers of the type
|
||||
indicated in Table <A HREF="#tab:f90spsm">13</A>.
|
||||
</DD>
|
||||
<DT><STRONG>work</STRONG></DT>
|
||||
<DD>a work array.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one array of the same type of <SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></SPAN> with the
|
||||
TARGET attribute.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<SPAN CLASS="MATH"><IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"></SPAN>.
|
||||
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: an array of rank one or two
|
||||
containing numbers of type specified in
|
||||
Table <A HREF="#tab:f90spsm">13</A>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
|
||||
<DIV CLASS="navigation"><HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1052"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1048"
|
||||
HREF="node52.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1044"
|
||||
HREF="node64.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1050"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1053"
|
||||
HREF="node66.html">Communication routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html1049"
|
||||
HREF="node52.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1045"
|
||||
HREF="node64.html">psb_spmm Sparse</A>
|
||||
<B> <A NAME="tex2html1051"
|
||||
HREF="node1.html">Contents</A></B> </DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -1,638 +1,77 @@
|
||||
<!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>psb_halo -- Halo Data Communication</TITLE>
|
||||
<META NAME="description" CONTENT="psb_halo -- Halo Data Communication">
|
||||
<TITLE>Communication routines</TITLE>
|
||||
<META NAME="description" CONTENT="Communication routines">
|
||||
<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="node67.html">
|
||||
<LINK REL="previous" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="next" HREF="node71.html">
|
||||
<LINK REL="previous" HREF="node52.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node67.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1065"
|
||||
|
||||
<DIV CLASS="navigation"><!--Navigation Panel-->
|
||||
<A NAME="tex2html1064"
|
||||
HREF="node67.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1061"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1060"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1055"
|
||||
<A NAME="tex2html1054"
|
||||
HREF="node65.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1063"
|
||||
<A NAME="tex2html1062"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1066"
|
||||
HREF="node67.html">psb_ovrl Overlap</A>
|
||||
<B> Up:</B> <A NAME="tex2html1062"
|
||||
HREF="node65.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1056"
|
||||
HREF="node65.html">Communication routines</A>
|
||||
<B> <A NAME="tex2html1064"
|
||||
<B> Next:</B> <A NAME="tex2html1065"
|
||||
HREF="node67.html">psb_halo Halo</A>
|
||||
<B> Up:</B> <A NAME="tex2html1061"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1055"
|
||||
HREF="node65.html">psb_spsm Triangular</A>
|
||||
<B> <A NAME="tex2html1063"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<BR></DIV>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00061000000000000000">
|
||||
psb_halo -- Halo Data Communication</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
These subroutines gathers the values of the halo
|
||||
elements:
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
x \leftarrow x
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="43" HEIGHT="24" BORDER="0"
|
||||
SRC="img55.png"
|
||||
ALT="\begin{displaymath}x \leftarrow x \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
where:
|
||||
<DL>
|
||||
<DT><STRONG><IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></STRONG></DT>
|
||||
<DD>is a global dense submatrix.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="3338"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 14:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img22.png"
|
||||
ALT="$\alpha$">, <IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Integer</TD>
|
||||
<TD ALIGN="LEFT">psb_halo</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_halo</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_halo</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_halo</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_halo</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
</DIV><P></P>
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="395" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img56.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_halo(x, desc_a, info)
|
||||
call psb_halo(x, desc_a, info, work, data)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
<H1><A NAME="SECTION00060000000000000000">
|
||||
Communication routines</A>
|
||||
</H1>
|
||||
The routines in this chapter implement various global communication operators
|
||||
on vectors associated with a discretization mesh. For auxiliary communication
|
||||
routines not tied to a discretization space see <A HREF="node71.html#sec:toolsrout">6</A>.
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>global dense matrix <IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
|
||||
containing numbers of type specified in
|
||||
Table <A HREF="#tab:f90halo">14</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>work</STRONG></DT>
|
||||
<DD>the work array.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a rank one array of the same type of <IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
</DD>
|
||||
<DT><STRONG>data</STRONG></DT>
|
||||
<DD>index list selector.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Specified as: an integer. Values:<code>psb_comm_halo_</code>,<code>psb_comm_mov_</code>,
|
||||
<code>psb_comm_ext_</code>, default: <code>psb_comm_halo_</code>. Chooses the
|
||||
index list on which to base the data exchange.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>global dense result matrix <IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Returned as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table <A HREF="#tab:f90halo">14</A>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>the local portion of result submatrix <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
An integer value that contains an error code.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:try8x8"></A><A NAME="3340"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 7:</STRONG>
|
||||
Sample discretization mesh.</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<IMG
|
||||
WIDTH="358" HEIGHT="313" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img58.png"
|
||||
ALT="\includegraphics[scale=0.45]{figures/try8x8.eps}">
|
||||
|
||||
<!-- MATH
|
||||
$\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}}$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="1" HEIGHT="2" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img57.png"
|
||||
ALT="\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}}">
|
||||
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<FONT SIZE="+1"><B>Usage Example</B></FONT>
|
||||
Consider the discretization mesh depicted in fig. <A HREF="#fig:try8x8">7</A>,
|
||||
partitioned among two processes as shown by the dashed line; the data
|
||||
distribution is such that each process will own 32 entries in the
|
||||
index space, with a halo made of 8 entries placed at local indices 33
|
||||
through 40. If process 0 assigns an initial value of 1 to its entries
|
||||
in the <IMG
|
||||
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"> vector, and process 1 assigns a value of 2, then after a
|
||||
call to <code>psb_halo</code> the contents of the local vectors will be the
|
||||
following:
|
||||
<BR>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 ALIGN="CENTER">
|
||||
<TR><TD ALIGN="CENTER" COLSPAN=3><FONT SIZE="-1">
|
||||
Process 0</FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="CENTER" COLSPAN=3><FONT SIZE="-1">
|
||||
Process 1</FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
I </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> GLOB(I) </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> X(I) </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> I </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> GLOB(I) </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> X(I) </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
1 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
2 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
3 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
4 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
6 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
7 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
8 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
9 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 9 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 9 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
10 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 10 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 10 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
11 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 11 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 11 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
12 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 12 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 12 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
13 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 13 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 13 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
14 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 14 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 14 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
15 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 15 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 15 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
16 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 16 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 16 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
17 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 49 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
18 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 50 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
19 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 51 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
20 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 52 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
21 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 53 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
22 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 54 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
23 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 55 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
24 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 56 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
25 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 57 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
26 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 58 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
27 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 59 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
28 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 60 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
29 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 61 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
30 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 62 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
31 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 63 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
32 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 64 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
33 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
34 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
35 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
36 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
37 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
38 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
39 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
40 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
</TABLE></DIV>
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1065"
|
||||
HREF="node67.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1061"
|
||||
HREF="node65.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1055"
|
||||
HREF="node65.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1063"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1066"
|
||||
HREF="node67.html">psb_ovrl Overlap</A>
|
||||
<B> Up:</B> <A NAME="tex2html1062"
|
||||
HREF="node65.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1056"
|
||||
HREF="node65.html">Communication routines</A>
|
||||
<B> <A NAME="tex2html1064"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL CLASS="ChildLinks">
|
||||
<LI><A NAME="tex2html1066"
|
||||
HREF="node67.html">psb_halo -- Halo Data Communication</A>
|
||||
<LI><A NAME="tex2html1067"
|
||||
HREF="node68.html">psb_ovrl -- Overlap Update</A>
|
||||
<LI><A NAME="tex2html1068"
|
||||
HREF="node69.html">psb_gather -- Gather Global Dense Matrix</A>
|
||||
<LI><A NAME="tex2html1069"
|
||||
HREF="node70.html">psb_scatter -- Scatter Global Dense Matrix</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue