You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
psblas3/docs/html/userhtmlsu38.html

218 lines
9.3 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>psb_spasb &#8212; Sparse matrix assembly routine</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 733--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu42.html" >next</a>] [<a
href="userhtmlsu37.html" >prev</a>] [<a
href="userhtmlsu37.html#tailuserhtmlsu37.html" >prev-tail</a>] [<a
href="userhtmlsu35.html#tailuserhtmlsu38.html">tail</a>] [<a
href="userhtmlsu32.html#userhtmlsu41.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">6.9 </span> <a
id="x49-860006.9"></a>psb_spasb &#8212; Sparse matrix assembly routine</h4>
<pre class="verbatim" id="verbatim-42">
call&#x00A0;psb_spasb(a,&#x00A0;desc_a,&#x00A0;info,&#x00A0;afmt,&#x00A0;upd,&#x00A0;dupl,&#x00A0;mold)
</pre>
<!--l. 737--><p class="nopar" >
<!--l. 739--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">Synchronous.
</dd><dt class="description">
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">the communication descriptor.<br
class="newline" />Scope:<span
class="cmbx-10">local</span>.<br
class="newline" />Type:<span
class="cmbx-10">required</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in/out</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlsu5.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<span
class="cmbx-10">afmt</span> </dt><dd
class="description">the storage format for the sparse matrix.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" />Type: <span
class="cmbx-10">optional</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an array of characters. Defalt: &#8217;CSR&#8217;.
</dd><dt class="description">
<span
class="cmbx-10">upd</span> </dt><dd
class="description">Provide for updates to the matrix coefficients.<br
class="newline" />Scope: <span
class="cmbx-10">global</span>.<br
class="newline" />Type: <span
class="cmbx-10">optional</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: integer, possible values: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_upd_srch_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_upd_perm_</span></span></span>
</dd><dt class="description">
<span
class="cmbx-10">dupl</span> </dt><dd
class="description">How to handle duplicate coefficients.<br
class="newline" />Scope: <span
class="cmbx-10">global</span>.<br
class="newline" />Type: <span
class="cmbx-10">optional</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: integer, possible values: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_dupl_ovwrt_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_dupl_add_</span></span></span>,
<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_dupl_err_</span></span></span>.
</dd><dt class="description">
<span
class="cmbx-10">mold</span> </dt><dd
class="description">The desired dynamic type for the internal matrix storage.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" />Type: <span
class="cmbx-10">optional</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of a class derived from <a
id="spbasedata"></a><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_base</span><span
class="cmtt-10">_sparse</span><span
class="cmtt-10">_mat</span>.</dd></dl>
<!--l. 770--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
</dd><dt class="description">
<span
class="cmbx-10">a</span> </dt><dd
class="description">the matrix to be assembled.<br
class="newline" />Scope:<span
class="cmbx-10">local</span><br
class="newline" />Type:<span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlsu6.html#spdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_Tspmat</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">the communication descriptor.<br
class="newline" />Scope:<span
class="cmbx-10">local</span>.<br
class="newline" />Type:<span
class="cmbx-10">required</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in/out</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlsu5.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>. If the matrix was
allocated with <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">buildmode=psb_matbld_remote_</span></span></span>, then the descriptor will
be reassembled.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
class="description">Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
<!--l. 791--><p class="noindent" ><span
class="cmbx-12">Notes</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x49-86002x1">On entry to this routine the descriptor must be in the assembled state,
i.e. <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_cdasb</span></span></span> must already have been called.
</li>
<li
class="enumerate" id="x49-86004x2">The sparse matrix may be in either the build or update state;
</li>
<li
class="enumerate" id="x49-86006x3">Duplicate entries are detected and handled in both build and update state,
with the exception of the error action that is only taken in the build state,
i.e. on the first assembly;
</li>
<li
class="enumerate" id="x49-86008x4">If the update choice is <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_upd_perm_</span></span></span>, then subsequent calls to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_spins</span></span></span>
to update the matrix must be arranged in such a way as to produce exactly
the same sequence of coefficient values as encountered at the first assembly;
</li>
<li
class="enumerate" id="x49-86010x5">The output storage format need not be the same on all processes;
</li>
<li
class="enumerate" id="x49-86012x6">On exit from this routine the matrix is in the assembled state, and thus
is suitable for the computational routines;
</li>
<li
class="enumerate" id="x49-86014x7">If the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">buildmode=psb_matbld_remote_</span></span></span> value was specified at allocation
time, contributions defined on the current process but belonging to a
remote process will be handled accordingly. This is most likely to occur
in finite element applications, with <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">dupl=psb_dupl_add_</span></span></span>; note that the
descriptor will be updated, and there will be a runtime overhead.</li></ol>
<!--l. 854--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu42.html" >next</a>] [<a
href="userhtmlsu37.html" >prev</a>] [<a
href="userhtmlsu37.html#tailuserhtmlsu37.html" >prev-tail</a>] [<a
href="userhtmlsu38.html" >front</a>] [<a
href="userhtmlsu32.html#userhtmlsu41.html" >up</a>] </p></div>
<!--l. 854--><p class="indent" > <a
id="tailuserhtmlsu38.html"></a>
</body></html>