Sophie

Sophie

distrib > Fedora > 17 > i386 > by-pkgid > 6f9b777f038c75c883ffd8a1c97d6221 > files > 36

SuperLU-devel-4.3-5.fc17.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>SuperLU: EXAMPLE/citersol.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.5 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>EXAMPLE/citersol.c File Reference</h1>Example #1 showing how to use ILU to precondition GMRES. <a href="#_details">More...</a>
<p>
<code>#include &quot;<a class="el" href="slu__cdefs_8h-source.html">slu_cdefs.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#455d0df27a76044ba598ec4dccd0abfa">cpsolve</a> (int n, <a class="el" href="structcomplex.html">complex</a> x[], <a class="el" href="structcomplex.html">complex</a> y[])</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#d48f5fcdc4961220795817c195e2a411">cmatvec_mult</a> (<a class="el" href="structcomplex.html">complex</a> alpha, <a class="el" href="structcomplex.html">complex</a> x[], <a class="el" href="structcomplex.html">complex</a> beta, <a class="el" href="structcomplex.html">complex</a> y[])</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>

<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsuperlu__options__t.html">superlu_options_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#64b516645b16ef03c6fd0d692e6eb277">GLOBAL_OPTIONS</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#4ff9f80047e0b810344d85feb96941ef">GLOBAL_R</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#3e8f028a8a340f260f7ac67973072999">GLOBAL_C</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#fbcb1904a71d92b04c1aef1cede6c4b1">GLOBAL_PERM_C</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#5a42ee721355f1c852f770661834be93">GLOBAL_PERM_R</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structSuperMatrix.html">SuperMatrix</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#d42e5c3013507184841cdfee652a0c18">GLOBAL_A</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structSuperMatrix.html">SuperMatrix</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#0f5cf27b325ef2874c953290f74c9d0a">GLOBAL_L</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structSuperMatrix.html">SuperMatrix</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#000ad5c2198e4309802b4478ed08a98c">GLOBAL_U</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structSuperLUStat__t.html">SuperLUStat_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#96a062252c26544370e8feae987c6d16">GLOBAL_STAT</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmem__usage__t.html">mem_usage_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="citersol_8c.html#19718c440adb41fbebcb4bafedbf932c">GLOBAL_MEM_USAGE</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<pre>
 -- SuperLU routine (version 4.2) --
 Lawrence Berkeley National Laboratory
 November, 2010
 August, 2011</pre><p>
<pre> This example shows that ILU is computed from the equilibrated matrix,
 and the preconditioned GMRES is applied to the equilibrated system.
 The driver routine CGSISX is called twice to perform factorization
 and apply preconditioner separately.</pre><p>
<pre> Note that CGSISX performs the following factorization:
     Pr*Dr*A*Dc*Pc^T ~= LU
 with Pr being obtained from MC64 statically then partial pivoting
 dybamically. On return, A is overwritten as A1 = Dr*A*Dc.</pre><p>
<pre> We can solve the transformed system, A1*y = Dr*B, using FGMRES.
 B is first overwritten as Dr*B.
 Then GMRES step requires requires 2 procedures:
   1) Apply preconditioner M^{-1} = Pc^T*U^{-1}*L^{-1}*Pr
   2) Matrix-vector multiplication: w = A1*v</pre><p>
<pre> </pre> <hr><h2>Function Documentation</h2>
<a class="anchor" name="d48f5fcdc4961220795817c195e2a411"></a><!-- doxytag: member="citersol.c::cmatvec_mult" ref="d48f5fcdc4961220795817c195e2a411" args="(complex alpha, complex x[], complex beta, complex y[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cmatvec_mult           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcomplex.html">complex</a>&nbsp;</td>
          <td class="paramname"> <em>alpha</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcomplex.html">complex</a>&nbsp;</td>
          <td class="paramname"> <em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcomplex.html">complex</a>&nbsp;</td>
          <td class="paramname"> <em>beta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcomplex.html">complex</a>&nbsp;</td>
          <td class="paramname"> <em>y</em>[]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="455d0df27a76044ba598ec4dccd0abfa"></a><!-- doxytag: member="citersol.c::cpsolve" ref="455d0df27a76044ba598ec4dccd0abfa" args="(int n, complex x[], complex y[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cpsolve           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcomplex.html">complex</a>&nbsp;</td>
          <td class="paramname"> <em>x</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcomplex.html">complex</a>&nbsp;</td>
          <td class="paramname"> <em>y</em>[]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="0ddf1224851353fc92bfbff6f499fa97"></a><!-- doxytag: member="citersol.c::main" ref="0ddf1224851353fc92bfbff6f499fa97" args="(int argc, char *argv[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>argv</em>[]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="d42e5c3013507184841cdfee652a0c18"></a><!-- doxytag: member="citersol.c::GLOBAL_A" ref="d42e5c3013507184841cdfee652a0c18" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structSuperMatrix.html">SuperMatrix</a>* <a class="el" href="zitersol1_8c.html#d42e5c3013507184841cdfee652a0c18">GLOBAL_A</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="3e8f028a8a340f260f7ac67973072999"></a><!-- doxytag: member="citersol.c::GLOBAL_C" ref="3e8f028a8a340f260f7ac67973072999" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float * <a class="el" href="zitersol1_8c.html#c5dce1561e620f6a6f6b6f17d82df4e8">GLOBAL_C</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="0f5cf27b325ef2874c953290f74c9d0a"></a><!-- doxytag: member="citersol.c::GLOBAL_L" ref="0f5cf27b325ef2874c953290f74c9d0a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structSuperMatrix.html">SuperMatrix</a> * <a class="el" href="zitersol1_8c.html#0f5cf27b325ef2874c953290f74c9d0a">GLOBAL_L</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="19718c440adb41fbebcb4bafedbf932c"></a><!-- doxytag: member="citersol.c::GLOBAL_MEM_USAGE" ref="19718c440adb41fbebcb4bafedbf932c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmem__usage__t.html">mem_usage_t</a>* <a class="el" href="zitersol1_8c.html#19718c440adb41fbebcb4bafedbf932c">GLOBAL_MEM_USAGE</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="64b516645b16ef03c6fd0d692e6eb277"></a><!-- doxytag: member="citersol.c::GLOBAL_OPTIONS" ref="64b516645b16ef03c6fd0d692e6eb277" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structsuperlu__options__t.html">superlu_options_t</a>* <a class="el" href="zitersol1_8c.html#64b516645b16ef03c6fd0d692e6eb277">GLOBAL_OPTIONS</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="fbcb1904a71d92b04c1aef1cede6c4b1"></a><!-- doxytag: member="citersol.c::GLOBAL_PERM_C" ref="fbcb1904a71d92b04c1aef1cede6c4b1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int* <a class="el" href="zitersol1_8c.html#fbcb1904a71d92b04c1aef1cede6c4b1">GLOBAL_PERM_C</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="5a42ee721355f1c852f770661834be93"></a><!-- doxytag: member="citersol.c::GLOBAL_PERM_R" ref="5a42ee721355f1c852f770661834be93" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int * <a class="el" href="zitersol1_8c.html#5a42ee721355f1c852f770661834be93">GLOBAL_PERM_R</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="4ff9f80047e0b810344d85feb96941ef"></a><!-- doxytag: member="citersol.c::GLOBAL_R" ref="4ff9f80047e0b810344d85feb96941ef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float* <a class="el" href="zitersol1_8c.html#8cb83de814c7fbf89011ba08bb602ce0">GLOBAL_R</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="96a062252c26544370e8feae987c6d16"></a><!-- doxytag: member="citersol.c::GLOBAL_STAT" ref="96a062252c26544370e8feae987c6d16" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structSuperLUStat__t.html">SuperLUStat_t</a>* <a class="el" href="zitersol1_8c.html#96a062252c26544370e8feae987c6d16">GLOBAL_STAT</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="000ad5c2198e4309802b4478ed08a98c"></a><!-- doxytag: member="citersol.c::GLOBAL_U" ref="000ad5c2198e4309802b4478ed08a98c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structSuperMatrix.html">SuperMatrix</a> * <a class="el" href="zitersol1_8c.html#000ad5c2198e4309802b4478ed08a98c">GLOBAL_U</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 25 13:43:49 2011 for SuperLU by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>