Updated docs with fnd_owner adn set_p_adjcncy

This commit is contained in:
Salvatore Filippone
2019-12-12 17:37:31 +00:00
parent acae5f9278
commit db2458dd29
327 changed files with 25044 additions and 24405 deletions
+44 -170
View File
@@ -3,8 +3,8 @@
<!--Converted with LaTeX2HTML 2018 (Released Feb 1, 2018) -->
<HTML>
<HEAD>
<TITLE>Sparse Matrix class</TITLE>
<META NAME="description" CONTENT="Sparse Matrix class">
<TITLE>set_p_adjcncy -- Set process adjacency list</TITLE>
<META NAME="description" CONTENT="set_p_adjcncy -- Set process adjacency list">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@@ -14,203 +14,77 @@
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node43.html">
<LINK REL="previous" HREF="node10.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="next" HREF="node24.html">
<LINK REL="previous" HREF="node22.html">
<LINK REL="up" HREF="node10.html">
<LINK REL="next" HREF="node24.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html519"
<A NAME="tex2html530"
HREF="node24.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html515"
HREF="node9.html">
<A NAME="tex2html526"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html509"
<A NAME="tex2html520"
HREF="node22.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html517"
<A NAME="tex2html528"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html520"
HREF="node24.html">Sparse Matrix Methods</A>
<B> Up:</B> <A NAME="tex2html516"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html510"
HREF="node22.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html518"
<B> Next:</B> <A NAME="tex2html531"
HREF="node24.html">fnd_owner Find</A>
<B> Up:</B> <A NAME="tex2html527"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html521"
HREF="node22.html">get_p_adjcncy Get</A>
&nbsp; <B> <A NAME="tex2html529"
HREF="node1.html">Contents</A></B>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<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&nbsp;[<A
HREF="node134.html#DesignPatterns">13</A>] as detailed
in&nbsp;[<A
HREF="node134.html#Sparse03">11</A>]; the type declaration is shown in
figure&nbsp;<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.
<H3><A NAME="SECTION000411300000000000000">
set_p_adjcncy -- Set process adjacency list</A>
</H3>
<DIV ALIGN="CENTER"><A NAME="fig:spmattype"></A><A NAME="936"></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>
<P>
<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:
call desc%set_p_adjcncy(list)
</PRE>
<P>
<DL>
<DT><STRONG>psb_T_coo_sparse_mat</STRONG></DT>
<DD>Coordinate storage;
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG>psb_T_csr_sparse_mat</STRONG></DT>
<DD>Compressed storage by rows;
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>psb_T_csc_sparse_mat</STRONG></DT>
<DD>Compressed storage by columns;
<DT><STRONG>list</STRONG></DT>
<DD>the list of adjacent processes.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a one-dimensional array of integers of kind <code>psb_ipk_</code>.
</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.
Note: this method can be called after a call to <code>psb_cdall</code> and
before a call to <code>psb_cdasb</code>. The user is specifying here some
knowledge about which processes are topological neighbours of the
current process. The availability of this information may speed up the
execution of the assembly call <code>psb_cdasb</code>.
<P>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
<LI><A NAME="tex2html521"
HREF="node24.html">Sparse Matrix Methods</A>
<LI><A NAME="tex2html522"
HREF="node25.html">get_nrows -- Get number of rows in a sparse matrix</A>
<LI><A NAME="tex2html523"
HREF="node26.html">get_ncols -- Get number of columns in a sparse
matrix</A>
<LI><A NAME="tex2html524"
HREF="node27.html">get_nnzeros -- Get number of nonzero elements
in a sparse matrix</A>
<LI><A NAME="tex2html525"
HREF="node28.html">get_size -- Get maximum number of nonzero elements
in a sparse matrix</A>
<LI><A NAME="tex2html526"
HREF="node29.html">sizeof -- Get memory occupation in bytes
of a sparse matrix</A>
<LI><A NAME="tex2html527"
HREF="node30.html">get_fmt -- Short description of the dynamic type</A>
<LI><A NAME="tex2html528"
HREF="node31.html">is_bld, is_upd, is_asb -- Status check</A>
<LI><A NAME="tex2html529"
HREF="node32.html">is_lower, is_upper, is_triangle, is_unit --
Format check</A>
<LI><A NAME="tex2html530"
HREF="node33.html">cscnv -- Convert to a different storage format</A>
<LI><A NAME="tex2html531"
HREF="node34.html">csclip -- Reduce to a submatrix</A>
<LI><A NAME="tex2html532"
HREF="node35.html">clean_zeros -- Eliminate zero coefficients</A>
<LI><A NAME="tex2html533"
HREF="node36.html">get_diag -- Get main diagonal</A>
<LI><A NAME="tex2html534"
HREF="node37.html">clip_diag -- Cut out main diagonal</A>
<LI><A NAME="tex2html535"
HREF="node38.html">tril -- Return the lower triangle</A>
<LI><A NAME="tex2html536"
HREF="node39.html">triu -- Return the upper triangle</A>
<LI><A NAME="tex2html537"
HREF="node40.html">psb_set_mat_default -- Set default storage format</A>
<LI><A NAME="tex2html538"
HREF="node41.html">clone -- Clone current object</A>
<LI><A NAME="tex2html539"
HREF="node42.html">Named Constants</A>
</UL>
<!--End of Table of Child-Links-->
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html519"
HREF="node24.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html515"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html509"
HREF="node22.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html517"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html520"
HREF="node24.html">Sparse Matrix Methods</A>
<B> Up:</B> <A NAME="tex2html516"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html510"
HREF="node22.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html518"
HREF="node1.html">Contents</A></B> </DIV>
<!--End of Navigation Panel-->
</BODY>
</HTML>