Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 0574b44b887114c5912824c1fbcee654 > files > 2460

apbs-doc-1.2.1-3.fc14.x86_64.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>APBS: Vpee class</title>
<link href="apbs.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Vpee class</h1>This class provides some functionality for error esimation in parallel.  
<a href="#_details">More...</a>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsVpee.html">sVpee</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains public data members for Vpee class/module.  <a href="structsVpee.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Files</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vpee_8h.html">vpee.h</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains declarations for class Vpee. <br></td></tr>

<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="vpee_8c.html">vpee.c</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class Vpee methods. <br></td></tr>

<p>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf98e78239b4e9f1113bead007cc98c26"></a><!-- doxytag: member="Vpee::Vpee" ref="gf98e78239b4e9f1113bead007cc98c26" args="" -->
typedef struct <a class="el" href="structsVpee.html">sVpee</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Vpee.html#gf98e78239b4e9f1113bead007cc98c26">Vpee</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Declaration of the Vpee class as the Vpee structure. <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsVpee.html">Vpee</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Vpee.html#gac9ecd9fef17be197f05e96f9aa1b8cf">Vpee_ctor</a> (Gem *gm, int localPartID, int killFlag, double killParam)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct the Vpee object.  <a href="#gac9ecd9fef17be197f05e96f9aa1b8cf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Vpee.html#g8af91e509c5b5449571b7b8326602f79">Vpee_ctor2</a> (<a class="el" href="structsVpee.html">Vpee</a> *thee, Gem *gm, int localPartID, int killFlag, double killParam)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">FORTRAN stub to construct the Vpee object.  <a href="#g8af91e509c5b5449571b7b8326602f79"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Vpee.html#g2d9caddb8eb394c871c8e9f2e43921d4">Vpee_dtor</a> (<a class="el" href="structsVpee.html">Vpee</a> **thee)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Object destructor.  <a href="#g2d9caddb8eb394c871c8e9f2e43921d4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Vpee.html#g81bae9ed9c9b647a086f5a7bcdf28ec1">Vpee_dtor2</a> (<a class="el" href="structsVpee.html">Vpee</a> *thee)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">FORTRAN stub object destructor.  <a href="#g81bae9ed9c9b647a086f5a7bcdf28ec1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Vpee.html#g4148d9f1c92a50d49c15a80ae9da46f8">Vpee_markRefine</a> (<a class="el" href="structsVpee.html">Vpee</a> *thee, AM *am, int level, int akey, int rcol, double etol, int bkey)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mark simplices for refinement based on attenuated error estimates.  <a href="#g4148d9f1c92a50d49c15a80ae9da46f8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Vpee.html#gea089f2705f3e38d41ec04206a6d9738">Vpee_numSS</a> (<a class="el" href="structsVpee.html">Vpee</a> *thee)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of simplices in the local partition.  <a href="#gea089f2705f3e38d41ec04206a6d9738"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This class provides some functionality for error esimation in parallel. 
<p>
This class provides some functionality for error esimation in parallel. The purpose is to modulate the error returned by some external error estimator according to the partitioning of the mesh. For example, the Bank/Holst parallel refinement routine essentially reduces the error outside the ``local" partition to zero. However, this leads to the need for a few final overlapping Schwarz solves to smooth out the errors near partition boundaries. Supposedly, if the region in which we allow error-based refinement includes the ``local" partition and an external buffer zone approximately equal in size to the local region, then the solution will asymptotically approach the solution obtained via more typical methods. This is essentially a more flexible parallel implementation of MC's AM_markRefine. <hr><h2>Function Documentation</h2>
<a class="anchor" name="gac9ecd9fef17be197f05e96f9aa1b8cf"></a><!-- doxytag: member="vpee.h::Vpee_ctor" ref="gac9ecd9fef17be197f05e96f9aa1b8cf" args="(Gem *gm, int localPartID, int killFlag, double killParam)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structsVpee.html">Vpee</a>* Vpee_ctor           </td>
          <td>(</td>
          <td class="paramtype">Gem *&nbsp;</td>
          <td class="paramname"> <em>gm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>localPartID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>killFlag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>killParam</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Construct the Vpee object. 
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Baker </dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Newly constructed Vpee object </dd></dl>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em>localPartID</em>&nbsp;</td><td>
FEtk geometry manager object </td></tr>
<tr><td valign="top"><em>killFlag</em>&nbsp;</td><td>
ID of the local partition (focus of refinement) </td></tr>
<tr><td valign="top"><em>killParam</em>&nbsp;</td><td>
A flag to indicate how error estimates are to be attenuated outside the local partition: <ul>
<li>0: no attenuation </li>
<li>1: all error outside the local partition set to zero </li>
<li>2: all error is set to zero outside a sphere of radius (killParam*partRadius), where partRadius is the radius of the sphere circumscribing the local partition </li>
<li>3: all error is set to zero except for the local partition and its immediate neighbors <dl class="see" compact><dt><b>See also:</b></dt><dd>killFlag for usage </dd></dl>
</li>
</ul>
</td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g8af91e509c5b5449571b7b8326602f79"></a><!-- doxytag: member="vpee.h::Vpee_ctor2" ref="g8af91e509c5b5449571b7b8326602f79" args="(Vpee *thee, Gem *gm, int localPartID, int killFlag, double killParam)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Vpee_ctor2           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structsVpee.html">Vpee</a> *&nbsp;</td>
          <td class="paramname"> <em>thee</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Gem *&nbsp;</td>
          <td class="paramname"> <em>gm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>localPartID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>killFlag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>killParam</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
FORTRAN stub to construct the Vpee object. 
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Baker </dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if successful, 0 otherwise </dd></dl>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em>gm</em>&nbsp;</td><td>
The Vpee object </td></tr>
<tr><td valign="top"><em>localPartID</em>&nbsp;</td><td>
FEtk geometry manager object </td></tr>
<tr><td valign="top"><em>killFlag</em>&nbsp;</td><td>
ID of the local partition (focus of refinement) </td></tr>
<tr><td valign="top"><em>killParam</em>&nbsp;</td><td>
A flag to indicate how error estimates are to be attenuated outside the local partition: <ul>
<li>0: no attenuation </li>
<li>1: all error outside the local partition set to zero </li>
<li>2: all error is set to zero outside a sphere of radius (killParam*partRadius), where partRadius is the radius of the sphere circumscribing the local partition </li>
<li>3: all error is set to zero except for the local partition and its immediate neighbors <dl class="see" compact><dt><b>See also:</b></dt><dd>killFlag for usage </dd></dl>
</li>
</ul>
</td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g2d9caddb8eb394c871c8e9f2e43921d4"></a><!-- doxytag: member="vpee.h::Vpee_dtor" ref="g2d9caddb8eb394c871c8e9f2e43921d4" args="(Vpee **thee)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Vpee_dtor           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structsVpee.html">Vpee</a> **&nbsp;</td>
          <td class="paramname"> <em>thee</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Object destructor. 
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Baker </dd></dl>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em>thee</em>&nbsp;</td><td>
Pointer to memory location of the Vpee object </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g81bae9ed9c9b647a086f5a7bcdf28ec1"></a><!-- doxytag: member="vpee.h::Vpee_dtor2" ref="g81bae9ed9c9b647a086f5a7bcdf28ec1" args="(Vpee *thee)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Vpee_dtor2           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structsVpee.html">Vpee</a> *&nbsp;</td>
          <td class="paramname"> <em>thee</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
FORTRAN stub object destructor. 
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Baker </dd></dl>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em>thee</em>&nbsp;</td><td>
Pointer to object to be destroyed </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g4148d9f1c92a50d49c15a80ae9da46f8"></a><!-- doxytag: member="vpee.h::Vpee_markRefine" ref="g4148d9f1c92a50d49c15a80ae9da46f8" args="(Vpee *thee, AM *am, int level, int akey, int rcol, double etol, int bkey)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Vpee_markRefine           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structsVpee.html">Vpee</a> *&nbsp;</td>
          <td class="paramname"> <em>thee</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AM *&nbsp;</td>
          <td class="paramname"> <em>am</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>akey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>rcol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>etol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bkey</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Mark simplices for refinement based on attenuated error estimates. 
<p>
A wrapper/reimplementation of AM_markRefine that allows for more flexible attenuation of error-based markings outside the local partition. The error in each simplex is modified by the method (see killFlag) specified in the Vpee constructor. This allows the user to confine refinement to an arbitrary area around the local partition.<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Baker and Mike Holst </dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>This routine borrows very heavily from FEtk routines by Mike Holst. </dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of simplices marked for refinement. </dd></dl>
<dl compact><dt><b><a class="el" href="bug.html#_bug000030">Bug:</a></b></dt><dd>This function is no longer up-to-date with FEtk and may not function properly </dd></dl>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em>am</em>&nbsp;</td><td>
The Vpee object </td></tr>
<tr><td valign="top"><em>level</em>&nbsp;</td><td>
The FEtk algebra manager currently used to solve the PB </td></tr>
<tr><td valign="top"><em>akey</em>&nbsp;</td><td>
The current level of the multigrid hierarchy </td></tr>
<tr><td valign="top"><em>rcol</em>&nbsp;</td><td>
The marking method: <ul>
<li>-1: Reset markings --&gt; killFlag has no effect. </li>
<li>0: Uniform. </li>
<li>1: User defined (geometry-based). </li>
<li>&gt;1: A numerical estimate for the error has already been set in am and should be attenuated according to killFlag and used, in conjunction with etol, to mark simplices for refinement. </li>
</ul>
</td></tr>
<tr><td valign="top"><em>etol</em>&nbsp;</td><td>
The ID of the main parition on which to mark (or -1 if all partitions should be marked). NOte that we shouldhave (rcol == thee-&gt;localPartID) for (thee-&gt;killFlag == 2 or 3) </td></tr>
<tr><td valign="top"><em>bkey</em>&nbsp;</td><td>
The error tolerance criterion for marking How the error tolerance is interpreted: <ul>
<li>0: Simplex marked if error &gt; etol. </li>
<li>1: Simplex marked if error &gt; sqrt(etol^2/L) where L$ is the number of simplices </li>
</ul>
</td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="gea089f2705f3e38d41ec04206a6d9738"></a><!-- doxytag: member="vpee.h::Vpee_numSS" ref="gea089f2705f3e38d41ec04206a6d9738" args="(Vpee *thee)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Vpee_numSS           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structsVpee.html">Vpee</a> *&nbsp;</td>
          <td class="paramname"> <em>thee</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the number of simplices in the local partition. 
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Nathan Baker </dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of simplices in the local partition </dd></dl>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em>thee</em>&nbsp;</td><td>
The Vpee object </td></tr>
</table>
</dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 06:23:51 2009 for APBS by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>