<!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: vcsm.h Source File</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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <h1>vcsm.h</h1><a href="vcsm_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <a name="l00061"></a>00061 <span class="preprocessor">#ifndef _VCSM_H_</span> <a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">#define _VCSM_H_</span> <a name="l00063"></a>00063 <span class="preprocessor"></span> <a name="l00064"></a>00064 <span class="comment">/* Generic headers */</span> <a name="l00065"></a>00065 <span class="preprocessor">#include "maloc/maloc.h"</span> <a name="l00066"></a>00066 <span class="preprocessor">#include "<a class="code" href="vhal_8h.html" title="Contains generic macro definitions for APBS.">apbs/vhal.h</a>"</span> <a name="l00067"></a>00067 <span class="preprocessor">#include "<a class="code" href="valist_8h.html" title="Contains declarations for class Valist.">apbs/valist.h</a>"</span> <a name="l00068"></a>00068 <a name="l00069"></a>00069 <span class="comment">/* Specific headers */</span> <a name="l00070"></a>00070 <span class="preprocessor">#include "mc/mc.h"</span> <a name="l00071"></a>00071 <a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="group__Vcsm.html#g8b61bc1d195da9bf2019d131e4e76043" title="External function for FEtk Gem class to use during mesh refinement.">Gem_setExternalUpdateFunction</a>( <a name="l00077"></a>00077 Gem *thee, <a name="l00078"></a>00078 <span class="keywordtype">void</span> (*externalUpdate)(SS **simps, <span class="keywordtype">int</span> num) <a name="l00081"></a>00081 ); <a name="l00082"></a>00082 <a name="l00087"></a><a class="code" href="structsVcsm.html">00087</a> <span class="keyword">struct </span><a class="code" href="structsVcsm.html" title="Charge-simplex map class.">sVcsm</a> { <a name="l00088"></a>00088 <a name="l00089"></a><a class="code" href="structsVcsm.html#2948cf8817a552ca0f856914396884c2">00089</a> <a class="code" href="structsValist.html" title="Container class for list of atom objects.">Valist</a> *<a class="code" href="structsVcsm.html#2948cf8817a552ca0f856914396884c2">alist</a>; <a name="l00090"></a><a class="code" href="structsVcsm.html#33f6e827a606c1135861b1e22c05165c">00090</a> <span class="keywordtype">int</span> <a class="code" href="structsVcsm.html#33f6e827a606c1135861b1e22c05165c">natom</a>; <a name="l00092"></a><a class="code" href="structsVcsm.html#451f60e68532227ce4b5c884f6fbf1e4">00092</a> Gem *<a class="code" href="structsVcsm.html#451f60e68532227ce4b5c884f6fbf1e4">gm</a>; <a name="l00095"></a><a class="code" href="structsVcsm.html#924bfdffcbff072bb38d9c5535793292">00095</a> <span class="keywordtype">int</span> **<a class="code" href="structsVcsm.html#924bfdffcbff072bb38d9c5535793292">sqm</a>; <a name="l00102"></a><a class="code" href="structsVcsm.html#e082b0c31dbd9ce0e353d62e99912a44">00102</a> <span class="keywordtype">int</span> *<a class="code" href="structsVcsm.html#e082b0c31dbd9ce0e353d62e99912a44">nsqm</a>; <a name="l00103"></a><a class="code" href="structsVcsm.html#1eff0f4c401602f44059875587299656">00103</a> <span class="keywordtype">int</span> <a class="code" href="structsVcsm.html#1eff0f4c401602f44059875587299656">nsimp</a>; <a name="l00105"></a><a class="code" href="structsVcsm.html#d4f8252de7442932f78fe9f63271fe87">00105</a> <span class="keywordtype">int</span> <a class="code" href="structsVcsm.html#d4f8252de7442932f78fe9f63271fe87">msimp</a>; <a name="l00107"></a><a class="code" href="structsVcsm.html#9d2a87780a0627ec4efc8888ce3441ae">00107</a> <span class="keywordtype">int</span> **<a class="code" href="structsVcsm.html#9d2a87780a0627ec4efc8888ce3441ae">qsm</a>; <a name="l00109"></a><a class="code" href="structsVcsm.html#a8c9f2b9c98ff3ddffb69aaf0696ff2f">00109</a> <span class="keywordtype">int</span> *<a class="code" href="structsVcsm.html#a8c9f2b9c98ff3ddffb69aaf0696ff2f">nqsm</a>; <a name="l00110"></a><a class="code" href="structsVcsm.html#14fd7a8155d4784805f9cd79725e69d6">00110</a> <span class="keywordtype">int</span> <a class="code" href="structsVcsm.html#14fd7a8155d4784805f9cd79725e69d6">initFlag</a>; <a name="l00112"></a><a class="code" href="structsVcsm.html#39d405f28bba5a55fc128db47c8ace4e">00112</a> Vmem *<a class="code" href="structsVcsm.html#39d405f28bba5a55fc128db47c8ace4e">vmem</a>; <a name="l00114"></a>00114 }; <a name="l00115"></a>00115 <a name="l00120"></a><a class="code" href="group__Vcsm.html#g03db177f1f93081210039a71717ae1aa">00120</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsVcsm.html" title="Charge-simplex map class.">sVcsm</a> <a class="code" href="structsVcsm.html" title="Charge-simplex map class.">Vcsm</a>; <a name="l00121"></a>00121 <a name="l00122"></a>00122 <span class="comment">/* ///////////////////////////////////////////////////////////////////////////</span> <a name="l00123"></a>00123 <span class="comment">// Class Vcsm: Inlineable methods (vcsm.c)</span> <a name="l00125"></a>00125 <span class="comment"></span> <a name="l00126"></a>00126 <span class="comment">#if !defined(VINLINE_VCSM)</span> <a name="l00127"></a>00127 <span class="comment"></span> <a name="l00133"></a>00133 <span class="comment"> Valist* Vcsm_getValist(</span> <a name="l00134"></a>00134 <span class="comment"> Vcsm *thee </span> <a name="l00135"></a>00135 <span class="comment"> );</span> <a name="l00136"></a>00136 <span class="comment"></span> <a name="l00142"></a>00142 <span class="comment"> int Vcsm_getNumberAtoms(</span> <a name="l00143"></a>00143 <span class="comment"> Vcsm *thee, </span> <a name="l00144"></a>00144 <span class="comment"> int isimp </span> <a name="l00145"></a>00145 <span class="comment"> );</span> <a name="l00146"></a>00146 <span class="comment"></span> <a name="l00152"></a>00152 <span class="comment"> Vatom* Vcsm_getAtom(</span> <a name="l00153"></a>00153 <span class="comment"> Vcsm *thee, </span> <a name="l00154"></a>00154 <span class="comment"> int iatom, </span> <a name="l00155"></a>00155 <span class="comment"> int isimp </span> <a name="l00156"></a>00156 <span class="comment"> );</span> <a name="l00157"></a>00157 <span class="comment"></span> <a name="l00163"></a>00163 <span class="comment"> int Vcsm_getAtomIndex(</span> <a name="l00164"></a>00164 <span class="comment"> Vcsm *thee, </span> <a name="l00165"></a>00165 <span class="comment"> int iatom, </span> <a name="l00166"></a>00166 <span class="comment"> int isimp </span> <a name="l00167"></a>00167 <span class="comment"> );</span> <a name="l00168"></a>00168 <span class="comment"></span> <a name="l00174"></a>00174 <span class="comment"> int Vcsm_getNumberSimplices(</span> <a name="l00175"></a>00175 <span class="comment"> Vcsm *thee, </span> <a name="l00176"></a>00176 <span class="comment"> int iatom </span> <a name="l00177"></a>00177 <span class="comment"> );</span> <a name="l00178"></a>00178 <span class="comment"></span> <a name="l00184"></a>00184 <span class="comment"> SS* Vcsm_getSimplex(</span> <a name="l00185"></a>00185 <span class="comment"> Vcsm *thee, </span> <a name="l00186"></a>00186 <span class="comment"> int isimp, </span> <a name="l00187"></a>00187 <span class="comment"> int iatom </span> <a name="l00188"></a>00188 <span class="comment"> );</span> <a name="l00189"></a>00189 <span class="comment"></span> <a name="l00195"></a>00195 <span class="comment"> int Vcsm_getSimplexIndex(</span> <a name="l00196"></a>00196 <span class="comment"> Vcsm *thee, </span> <a name="l00197"></a>00197 <span class="comment"> int isimp, </span> <a name="l00198"></a>00198 <span class="comment"> int iatom </span> <a name="l00199"></a>00199 <span class="comment"> );</span> <a name="l00200"></a>00200 <span class="comment"></span> <a name="l00207"></a>00207 <span class="comment"> unsigned long int Vcsm_memChk(</span> <a name="l00208"></a>00208 <span class="comment"> Vcsm *thee </span> <a name="l00209"></a>00209 <span class="comment"> );</span> <a name="l00210"></a>00210 <span class="comment"></span> <a name="l00211"></a>00211 <span class="comment">#else /* if defined(VINLINE_VCSM) */</span> <a name="l00212"></a>00212 <span class="preprocessor"># define Vcsm_getValist(thee) ((thee)->alist)</span> <a name="l00213"></a>00213 <span class="preprocessor"></span><span class="preprocessor"># define Vcsm_getNumberAtoms(thee, isimp) ((thee)->nsqm[isimp])</span> <a name="l00214"></a>00214 <span class="preprocessor"></span><span class="preprocessor"># define Vcsm_getAtom(thee, iatom, isimp) (Valist_getAtom((thee)->alist, ((thee)->sqm)[isimp][iatom]))</span> <a name="l00215"></a>00215 <span class="preprocessor"></span><span class="preprocessor"># define Vcsm_getAtomIndex(thee, iatom, isimp) (((thee)->sqm)[isimp][iatom])</span> <a name="l00216"></a>00216 <span class="preprocessor"></span><span class="preprocessor"># define Vcsm_getNumberSimplices(thee, iatom) (((thee)->nqsm)[iatom])</span> <a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor"># define Vcsm_getSimplex(thee, isimp, iatom) (Gem_SS((thee)->gm, ((thee)->qsm)[iatom][isimp]))</span> <a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor"># define Vcsm_getSimplexIndex(thee, isimp, iatom) (((thee)->qsm)[iatom][isimp])</span> <a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor"># define Vcsm_memChk(thee) (Vmem_bytes((thee)->vmem))</span> <a name="l00220"></a>00220 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* if !defined(VINLINE_VCSM) */</span> <a name="l00221"></a>00221 <a name="l00222"></a>00222 <span class="comment">/* ///////////////////////////////////////////////////////////////////////////</span> <a name="l00223"></a>00223 <span class="comment">// Class Vcsm: Non-Inlineable methods (vcsm.c)</span> <a name="l00225"></a>00225 <span class="comment"></span> <a name="l00234"></a>00234 <span class="comment">Vcsm* Vcsm_ctor(</span> <a name="l00235"></a>00235 <span class="comment"> Valist *alist, </span> <a name="l00236"></a>00236 <span class="comment"> Gem *gm </span> <a name="l00237"></a>00237 <span class="comment"> );</span> <a name="l00238"></a>00238 <span class="comment"></span> <a name="l00247"></a>00247 <span class="comment">int Vcsm_ctor2(</span> <a name="l00248"></a>00248 <span class="comment"> Vcsm *thee, </span> <a name="l00249"></a>00249 <span class="comment"> Valist *alist, </span> <a name="l00250"></a>00250 <span class="comment"> Gem *gm </span> <a name="l00251"></a>00251 <span class="comment"> );</span> <a name="l00252"></a>00252 <span class="comment"></span> <a name="l00257"></a>00257 <span class="comment">void Vcsm_dtor(</span> <a name="l00258"></a>00258 <span class="comment"> Vcsm **thee </span> <a name="l00259"></a>00259 <span class="comment"> );</span> <a name="l00260"></a>00260 <span class="comment"></span> <a name="l00265"></a>00265 <span class="comment">void Vcsm_dtor2(</span> <a name="l00266"></a>00266 <span class="comment"> Vcsm *thee </span> <a name="l00267"></a>00267 <span class="comment"> );</span> <a name="l00268"></a>00268 <span class="comment"></span> <a name="l00275"></a>00275 <span class="comment">void Vcsm_init(</span> <a name="l00276"></a>00276 <span class="comment"> Vcsm *thee </span> <a name="l00277"></a>00277 <span class="comment"> );</span> <a name="l00278"></a>00278 <span class="comment"></span> <a name="l00285"></a>00285 <span class="comment">int Vcsm_update(</span> <a name="l00286"></a>00286 <span class="comment"> Vcsm *thee, </span> <a name="l00287"></a>00287 <span class="comment"> SS **simps, </span> <a name="l00292"></a>00292 <span class="comment"> int num </span> <a name="l00293"></a>00293 <span class="comment"> );</span> <a name="l00294"></a>00294 <span class="comment"></span> <a name="l00295"></a>00295 <span class="comment">#endif /* ifndef _VCSM_H_ */</span> <a name="l00296"></a>00296 </pre></div></div> <hr size="1"><address style="text-align: right;"><small>Generated on Thu Feb 12 06:23:49 2009 for APBS by <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>