<!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: routines.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>routines.h</h1><a href="routines_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <a name="l00059"></a>00059 <span class="preprocessor">#ifndef _APBSROUTINES_H_</span> <a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">#define _APBSROUTINES_H_</span> <a name="l00061"></a>00061 <span class="preprocessor"></span> <a name="l00062"></a>00062 <span class="preprocessor">#include "apbscfg.h"</span> <a name="l00063"></a>00063 <span class="preprocessor">#include "<a class="code" href="apbs_8h.html" title="Top-level header for APBS.">apbs/apbs.h</a>"</span> <a name="l00064"></a>00064 <span class="preprocessor">#include "<a class="code" href="nosh_8h.html" title="Contains declarations for class NOsh.">apbs/nosh.h</a>"</span> <a name="l00065"></a>00065 <span class="preprocessor">#include "<a class="code" href="mgparm_8h.html" title="Contains declarations for class MGparm.">apbs/mgparm.h</a>"</span> <a name="l00066"></a>00066 <span class="preprocessor">#include "<a class="code" href="pbeparm_8h.html" title="Contains declarations for class PBEparm.">apbs/pbeparm.h</a>"</span> <a name="l00067"></a>00067 <span class="preprocessor">#include "<a class="code" href="femparm_8h.html" title="Contains declarations for class APOLparm.">apbs/femparm.h</a>"</span> <a name="l00068"></a>00068 <span class="preprocessor">#include "<a class="code" href="vparam_8h.html" title="Contains declarations for class Vparam.">apbs/vparam.h</a>"</span> <a name="l00069"></a>00069 <a name="l00070"></a>00070 <a name="l00074"></a><a class="code" href="group__Frontend.html#gc8cd79b3347023a8eb7714000fb860f5">00074</a> <span class="preprocessor">#define APBSRC 13</span> <a name="l00075"></a>00075 <span class="preprocessor"></span> <a name="l00080"></a><a class="code" href="structAtomForce.html">00080</a> <span class="keyword">struct </span><a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> { <a name="l00081"></a><a class="code" href="structAtomForce.html#47afad04ca2d1b29738d78dc37c98dea">00081</a> <span class="keywordtype">double</span> <a class="code" href="structAtomForce.html#47afad04ca2d1b29738d78dc37c98dea">ibForce</a>[3]; <a name="l00082"></a><a class="code" href="structAtomForce.html#ba89038c6452b30867d136d23228acf5">00082</a> <span class="keywordtype">double</span> <a class="code" href="structAtomForce.html#ba89038c6452b30867d136d23228acf5">qfForce</a>[3]; <a name="l00083"></a><a class="code" href="structAtomForce.html#094cd21c7c3224429386bd7d51726d0e">00083</a> <span class="keywordtype">double</span> <a class="code" href="structAtomForce.html#094cd21c7c3224429386bd7d51726d0e">dbForce</a>[3]; <a name="l00084"></a><a class="code" href="structAtomForce.html#9356ba5e9fdfbd67002a8c753d661d78">00084</a> <span class="keywordtype">double</span> <a class="code" href="structAtomForce.html#9356ba5e9fdfbd67002a8c753d661d78">sasaForce</a>[3]; <a name="l00085"></a><a class="code" href="structAtomForce.html#8bc8bbf4048a316a5a0182a9539795c1">00085</a> <span class="keywordtype">double</span> <a class="code" href="structAtomForce.html#8bc8bbf4048a316a5a0182a9539795c1">savForce</a>[3]; <a name="l00086"></a><a class="code" href="structAtomForce.html#4e7c9dcdf658048ef6ac763f886c037f">00086</a> <span class="keywordtype">double</span> <a class="code" href="structAtomForce.html#4e7c9dcdf658048ef6ac763f886c037f">wcaForce</a>[3]; <a name="l00087"></a>00087 }; <a name="l00088"></a>00088 <a name="l00092"></a><a class="code" href="group__Frontend.html#g5cac86051c09ec93d5cd7da30d9132e0">00092</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a>; <a name="l00093"></a>00093 <a name="l00099"></a>00099 <a class="code" href="structVparam.html" title="Reads and assigns charge/radii parameters.">Vparam</a>* <a class="code" href="group__Frontend.html#ge373e54f41b5dc9cb275baef6f6115b3" title="Loads and returns parameter object.">loadParameter</a>( <a name="l00100"></a>00100 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh <a name="l00102"></a>00102 ); <a name="l00103"></a>00103 <a name="l00109"></a>00109 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gde48c79ecd7d2bf5838a4e0519b19f9a" title="Load the molecules given in NOsh into atom lists.">loadMolecules</a>( <a name="l00110"></a>00110 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00111"></a>00111 <a class="code" href="structVparam.html" title="Reads and assigns charge/radii parameters.">Vparam</a> *param, <a name="l00113"></a>00113 <a class="code" href="structsValist.html" title="Container class for list of atom objects.">Valist</a> *alist[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>] <a name="l00115"></a>00115 ); <a name="l00116"></a>00116 <a name="l00123"></a>00123 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#gf15fae1faaacaee69eb1ec79a1d2c0d3" title="Destroy the loaded molecules.">killMolecules</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsValist.html" title="Container class for list of atom objects.">Valist</a> *alist[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>]); <a name="l00124"></a>00124 <a name="l00134"></a>00134 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g0744b51dd1328f9623331b0bd6b2a41e" title="Load the dielectric maps given in NOsh into grid objects.">loadDielMaps</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *dielXMap[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>], <a name="l00135"></a>00135 <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *dielYMap[NOSH_MAXMOL], <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *dielZMap[NOSH_MAXMOL]); <a name="l00136"></a>00136 <a name="l00145"></a>00145 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#g8fc9aaea29e0981630c959189125a9a2" title="Destroy the loaded dielectric.">killDielMaps</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *dielXMap[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>], <a name="l00146"></a>00146 <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *dielYMap[NOSH_MAXMOL], <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *dielZMap[NOSH_MAXMOL]); <a name="l00147"></a>00147 <a name="l00155"></a>00155 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g5b70151ac7dbfc3c615a6fed6367390b" title="Load the kappa maps given in NOsh into grid objects.">loadKappaMaps</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *kappa[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>]); <a name="l00156"></a>00156 <a name="l00163"></a>00163 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#g903bb83abbd4bb2b9102d782b319e26c" title="Destroy the loaded kappa maps.">killKappaMaps</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *kappa[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>]); <a name="l00164"></a>00164 <a name="l00172"></a>00172 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g8bfbb3f554c21aaca1e87b59ec7e36c4" title="Load the charge maps given in NOsh into grid objects.">loadChargeMaps</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *charge[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>]); <a name="l00173"></a>00173 <a name="l00180"></a>00180 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#gbd66a61c0345b5fb2a1f7cf28eda455f" title="Destroy the loaded charge maps.">killChargeMaps</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *charge[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>]); <a name="l00181"></a>00181 <a name="l00187"></a>00187 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#g52af26682a1da9e8ccd01daee70b7a41" title="Print out generic PBE params loaded from input.">printPBEPARM</a>(<a class="code" href="structsPBEparm.html" title="Parameter structure for PBE variables from input files.">PBEparm</a> *pbeparm); <a name="l00188"></a>00188 <a name="l00195"></a>00195 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#gc204e507188bb0c897a7ddd0e471622b" title="Print out MG-specific params loaded from input.">printMGPARM</a>(<a class="code" href="structsMGparm.html" title="Parameter structure for MG-specific variables from input files.">MGparm</a> *mgparm, <span class="keywordtype">double</span> realCenter[3]); <a name="l00196"></a>00196 <a name="l00202"></a>00202 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g672ad18a84d014f587dcc7c417f16611" title="Initialize an MG calculation.">initMG</a>( <a name="l00203"></a>00203 <span class="keywordtype">int</span> icalc, <a name="l00204"></a>00204 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00205"></a>00205 <a class="code" href="structsMGparm.html" title="Parameter structure for MG-specific variables from input files.">MGparm</a> *mgparm, <a name="l00206"></a>00206 <a class="code" href="structsPBEparm.html" title="Parameter structure for PBE variables from input files.">PBEparm</a> *pbeparm, <a name="l00207"></a>00207 <span class="keywordtype">double</span> realCenter[3], <a name="l00208"></a>00208 <a class="code" href="structsVpbe.html" title="Contains public data members for Vpbe class/module.">Vpbe</a> *pbe[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00209"></a>00209 <a class="code" href="structsValist.html" title="Container class for list of atom objects.">Valist</a> *alist[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>], <a name="l00210"></a>00210 <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *dielXMap[NOSH_MAXMOL], <a name="l00211"></a>00211 <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *dielYMap[NOSH_MAXMOL], <a name="l00212"></a>00212 <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *dielZMap[NOSH_MAXMOL], <a name="l00213"></a>00213 <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *kappaMap[NOSH_MAXMOL], <a name="l00214"></a>00214 <a class="code" href="structsVgrid.html" title="Electrostatic potential oracle for Cartesian mesh data.">Vgrid</a> *chargeMap[NOSH_MAXMOL], <a name="l00215"></a>00215 <a class="code" href="structsVpmgp.html" title="Contains public data members for Vpmgp class/module.">Vpmgp</a> *pmgp[NOSH_MAXCALC], <a name="l00216"></a>00216 <a class="code" href="structsVpmg.html" title="Contains public data members for Vpmg class/module.">Vpmg</a> *pmg[NOSH_MAXCALC] <a name="l00217"></a>00217 ); <a name="l00218"></a>00218 <a name="l00224"></a>00224 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#gb0ce95b1f26075f244714265de179a90" title="Kill structures initialized during an MG calculation.">killMG</a>( <a name="l00225"></a>00225 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00226"></a>00226 <a class="code" href="structsVpbe.html" title="Contains public data members for Vpbe class/module.">Vpbe</a> *pbe[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00227"></a>00227 <a class="code" href="structsVpmgp.html" title="Contains public data members for Vpmgp class/module.">Vpmgp</a> *pmgp[NOSH_MAXCALC], <a name="l00228"></a>00228 <a class="code" href="structsVpmg.html" title="Contains public data members for Vpmg class/module.">Vpmg</a> *pmg[NOSH_MAXCALC] <a name="l00229"></a>00229 ); <a name="l00230"></a>00230 <a name="l00239"></a>00239 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#ge5fef94b530af7a96dc63a3deed97413" title="Solve the PBE with MG.">solveMG</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsVpmg.html" title="Contains public data members for Vpmg class/module.">Vpmg</a> *pmg, <a class="code" href="group__MGparm.html#gcf31be9905f8e0ba1e083e1119b7cd1d" title="Declare MGparm_CalcType type.">MGparm_CalcType</a> type); <a name="l00240"></a>00240 <a name="l00249"></a>00249 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g38fa11fc3ff3b68abcb0e507e445185c" title="Set MG partitions for calculating observables and performing I/O.">setPartMG</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsMGparm.html" title="Parameter structure for MG-specific variables from input files.">MGparm</a> *mgparm, <a class="code" href="structsVpmg.html" title="Contains public data members for Vpmg class/module.">Vpmg</a> *pmg); <a name="l00250"></a>00250 <a name="l00264"></a>00264 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g2c9c9e4d6c9011d8206cd8e1e9d87426" title="Calculate electrostatic energies from MG solution.">energyMG</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a>* nosh, <span class="keywordtype">int</span> icalc, <a class="code" href="structsVpmg.html" title="Contains public data members for Vpmg class/module.">Vpmg</a> *pmg, <a name="l00265"></a>00265 <span class="keywordtype">int</span> *nenergy, <span class="keywordtype">double</span> *totEnergy, <span class="keywordtype">double</span> *qfEnergy, <span class="keywordtype">double</span> *qmEnergy, <a name="l00266"></a>00266 <span class="keywordtype">double</span> *dielEnergy); <a name="l00267"></a>00267 <a name="l00272"></a>00272 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#g0d20f0a6407d4ef03e15b5738612381e" title="Kill arrays allocated for energies.">killEnergy</a>(); <a name="l00273"></a>00273 <a name="l00287"></a>00287 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gfa145c12f55d0efd7fcace66ffde7567" title="Calculate forces from MG solution.">forceMG</a>(Vmem *mem, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsPBEparm.html" title="Parameter structure for PBE variables from input files.">PBEparm</a> *pbeparm, <a class="code" href="structsMGparm.html" title="Parameter structure for MG-specific variables from input files.">MGparm</a> *mgparm, <a name="l00288"></a>00288 <a class="code" href="structsVpmg.html" title="Contains public data members for Vpmg class/module.">Vpmg</a> *pmg, <span class="keywordtype">int</span> *nforce, <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> **atomForce, <a class="code" href="structsValist.html" title="Container class for list of atom objects.">Valist</a> *alist[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>]); <a name="l00289"></a>00289 <a name="l00298"></a>00298 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#g85261d2d20693fd91564bdadc911dbbb" title="Free memory from MG force calculation.">killForce</a>(Vmem *mem, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <span class="keywordtype">int</span> nforce[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00299"></a>00299 <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> *atomForce[NOSH_MAXCALC]); <a name="l00300"></a>00300 <a name="l00305"></a>00305 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#g26c23c3a3879a11ebeea23eb271e5bc6" title="Store energy in arrays for future use.">storeAtomEnergy</a>( <a name="l00306"></a>00306 <a class="code" href="structsVpmg.html" title="Contains public data members for Vpmg class/module.">Vpmg</a> *pmg, <a name="l00307"></a>00307 <span class="keywordtype">int</span> icalc, <a name="l00308"></a>00308 <span class="keywordtype">double</span> **atomEnergy, <a name="l00309"></a>00309 <span class="keywordtype">int</span> *nenergy <a name="l00310"></a>00310 ); <a name="l00311"></a>00311 <a name="l00328"></a>00328 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g0243cce85fc0dd6f64739a905b4742f0" title="Write out information to a flat file.">writedataFlat</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, Vcom *com, <span class="keyword">const</span> <span class="keywordtype">char</span> *fname, <a name="l00329"></a>00329 <span class="keywordtype">double</span> totEnergy[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <span class="keywordtype">double</span> qfEnergy[NOSH_MAXCALC], <a name="l00330"></a>00330 <span class="keywordtype">double</span> qmEnergy[NOSH_MAXCALC], <span class="keywordtype">double</span> dielEnergy[NOSH_MAXCALC], <a name="l00331"></a>00331 <span class="keywordtype">int</span> nenergy[NOSH_MAXCALC], <span class="keywordtype">double</span> *atomEnergy[NOSH_MAXCALC], <a name="l00332"></a>00332 <span class="keywordtype">int</span> nforce[NOSH_MAXCALC], <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> *atomForce[NOSH_MAXCALC]); <a name="l00333"></a>00333 <a name="l00350"></a>00350 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g969c5202eb71574a7b3823f1e1049795" title="Write out information to an XML file.">writedataXML</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, Vcom *com, <span class="keyword">const</span> <span class="keywordtype">char</span> *fname, <a name="l00351"></a>00351 <span class="keywordtype">double</span> totEnergy[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <span class="keywordtype">double</span> qfEnergy[NOSH_MAXCALC], <a name="l00352"></a>00352 <span class="keywordtype">double</span> qmEnergy[NOSH_MAXCALC], <span class="keywordtype">double</span> dielEnergy[NOSH_MAXCALC], <a name="l00353"></a>00353 <span class="keywordtype">int</span> nenergy[NOSH_MAXCALC], <span class="keywordtype">double</span> *atomEnergy[NOSH_MAXCALC], <a name="l00354"></a>00354 <span class="keywordtype">int</span> nforce[NOSH_MAXCALC], <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> *atomForce[NOSH_MAXCALC]); <a name="l00355"></a>00355 <a name="l00365"></a>00365 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g4f37ce55e96d10897a327e3841e0beed" title="Write out observables from MG calculation to file.">writedataMG</a>(<span class="keywordtype">int</span> rank, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsPBEparm.html" title="Parameter structure for PBE variables from input files.">PBEparm</a> *pbeparm, <a class="code" href="structsVpmg.html" title="Contains public data members for Vpmg class/module.">Vpmg</a> *pmg); <a name="l00366"></a>00366 <a name="l00376"></a>00376 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g12b5e7fa0d0f177f7b1668df0629bc1e" title="Write out operator matrix from MG calculation to file.">writematMG</a>(<span class="keywordtype">int</span> rank, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsPBEparm.html" title="Parameter structure for PBE variables from input files.">PBEparm</a> *pbeparm, <a class="code" href="structsVpmg.html" title="Contains public data members for Vpmg class/module.">Vpmg</a> *pmg); <a name="l00377"></a>00377 <a name="l00387"></a>00387 <span class="keywordtype">double</span> <a class="code" href="group__Frontend.html#g8955a29284f6c8dd7ab3d2843fa5f9f2" title="Access net local energy.">returnEnergy</a>(Vcom *com, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <span class="keywordtype">double</span> totEnergy[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <span class="keywordtype">int</span> iprint); <a name="l00388"></a>00388 <a name="l00394"></a>00394 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gfb4a43b1ee07988e941f8cb5d54f0f23" title="Combine and pretty-print energy data (deprecated...see printElecEnergy).">printEnergy</a>( <a name="l00395"></a>00395 Vcom *com, <a name="l00396"></a>00396 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00397"></a>00397 <span class="keywordtype">double</span> totEnergy[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00399"></a>00399 <span class="keywordtype">int</span> iprint <a name="l00400"></a>00400 ); <a name="l00401"></a>00401 <a name="l00407"></a>00407 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gad105790d5d821a70c2556d8f678bff9" title="Combine and pretty-print energy data.">printElecEnergy</a>( <a name="l00408"></a>00408 Vcom *com, <a name="l00409"></a>00409 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00410"></a>00410 <span class="keywordtype">double</span> totEnergy[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00412"></a>00412 <span class="keywordtype">int</span> iprint <a name="l00413"></a>00413 ); <a name="l00414"></a>00414 <a name="l00420"></a>00420 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g3ea91bf9d5a15e204315b2792dffc5c2" title="Combine and pretty-print energy data.">printApolEnergy</a>( <a name="l00421"></a>00421 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00422"></a>00422 <span class="keywordtype">int</span> iprint <a name="l00423"></a>00423 ); <a name="l00424"></a>00424 <a name="l00430"></a>00430 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g2f661dc633c6c5c8c6ee988dd332a746" title="Combine and pretty-print force data (deprecated...see printElecForce).">printForce</a>( <a name="l00431"></a>00431 Vcom *com, <a name="l00432"></a>00432 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00433"></a>00433 <span class="keywordtype">int</span> nforce[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00434"></a>00434 <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> *atomForce[NOSH_MAXCALC], <a name="l00435"></a>00435 <span class="keywordtype">int</span> i <a name="l00436"></a>00436 ); <a name="l00437"></a>00437 <a name="l00443"></a>00443 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gd03579d4b8a648e812b748af288a1023" title="Combine and pretty-print force data.">printElecForce</a>( <a name="l00444"></a>00444 Vcom *com, <a name="l00445"></a>00445 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00446"></a>00446 <span class="keywordtype">int</span> nforce[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00447"></a>00447 <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> *atomForce[NOSH_MAXCALC], <a name="l00448"></a>00448 <span class="keywordtype">int</span> i <a name="l00449"></a>00449 ); <a name="l00450"></a>00450 <a name="l00456"></a>00456 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gd34565687f0168cd9fd15b5747ef7084" title="Combine and pretty-print force data.">printApolForce</a>( <a name="l00457"></a>00457 Vcom *com, <a name="l00458"></a>00458 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00459"></a>00459 <span class="keywordtype">int</span> nforce[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00460"></a>00460 <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> *atomForce[NOSH_MAXCALC], <a name="l00461"></a>00461 <span class="keywordtype">int</span> i <a name="l00462"></a>00462 ); <a name="l00463"></a>00463 <a name="l00468"></a>00468 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#g6484d734f8fb04d4f2f2c6ef4541e25a" title="Wrapper to start MALOC Vio layer.">startVio</a>(); <a name="l00469"></a>00469 <a name="l00470"></a>00470 <span class="preprocessor">#ifdef HAVE_MC_H</span> <a name="l00471"></a>00471 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="vfetk_8h.html" title="Contains declarations for class Vfetk.">apbs/vfetk.h</a>"</span> <a name="l00472"></a>00472 <a name="l00481"></a>00481 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#g8a9dbdbf57bf8a9e308147abe0e8da34" title="Print out FE-specific params loaded from input.">printFEPARM</a>(<span class="keywordtype">int</span> icalc, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsFEMparm.html" title="Parameter structure for FEM-specific variables from input files.">FEMparm</a> *feparm, <a name="l00482"></a>00482 <a class="code" href="structsVfetk.html" title="Contains public data members for Vfetk class/module.">Vfetk</a> *fetk[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>]); <a name="l00483"></a>00483 <a name="l00498"></a>00498 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gfb412d6d72af68e499856b6ade594787" title="Calculate electrostatic energies from FE solution.">energyFE</a>(<a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a>* nosh, <span class="keywordtype">int</span> icalc, <a class="code" href="structsVfetk.html" title="Contains public data members for Vfetk class/module.">Vfetk</a> *fetk[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00499"></a>00499 <span class="keywordtype">int</span> *nenergy, <span class="keywordtype">double</span> *totEnergy, <span class="keywordtype">double</span> *qfEnergy, <span class="keywordtype">double</span> *qmEnergy, <a name="l00500"></a>00500 <span class="keywordtype">double</span> *dielEnergy); <a name="l00501"></a>00501 <a name="l00509"></a>00509 Vrc_Codes <a class="code" href="group__Frontend.html#g2a07181f0b784288233c5b71d53e3e92" title="Initialize FE solver objects.">initFE</a>( <a name="l00510"></a>00510 <span class="keywordtype">int</span> icalc, <a name="l00512"></a>00512 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00513"></a>00513 <a class="code" href="structsFEMparm.html" title="Parameter structure for FEM-specific variables from input files.">FEMparm</a> *feparm, <a name="l00514"></a>00514 <a class="code" href="structsPBEparm.html" title="Parameter structure for PBE variables from input files.">PBEparm</a> *pbeparm, <a name="l00515"></a>00515 <a class="code" href="structsVpbe.html" title="Contains public data members for Vpbe class/module.">Vpbe</a> *pbe[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00516"></a>00516 <a class="code" href="structsValist.html" title="Container class for list of atom objects.">Valist</a> *alist[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>], <a name="l00517"></a>00517 <a class="code" href="structsVfetk.html" title="Contains public data members for Vfetk class/module.">Vfetk</a> *fetk[NOSH_MAXCALC], <a name="l00518"></a>00518 Gem *gm[NOSH_MAXCALC] <a name="l00519"></a>00519 ); <a name="l00520"></a>00520 <a name="l00526"></a>00526 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#ge90a8d20839ced8a3e7d2caca35cbea0" title="Kill structures initialized during an FE calculation.">killFE</a>( <a name="l00527"></a>00527 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00528"></a>00528 <a class="code" href="structsVpbe.html" title="Contains public data members for Vpbe class/module.">Vpbe</a> *pbe[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>], <a name="l00529"></a>00529 <a class="code" href="structsVfetk.html" title="Contains public data members for Vfetk class/module.">Vfetk</a> *fetk[NOSH_MAXCALC], <a name="l00530"></a>00530 Gem *gem[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>] <a name="l00531"></a>00531 ); <a name="l00532"></a>00532 <a name="l00542"></a>00542 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g4263953eaca54df840862f6ca2ee4f26" title="Pre-refine mesh before solve.">preRefineFE</a>(<span class="keywordtype">int</span> i, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsFEMparm.html" title="Parameter structure for FEM-specific variables from input files.">FEMparm</a> *feparm, <a name="l00543"></a>00543 <a class="code" href="structsVfetk.html" title="Contains public data members for Vfetk class/module.">Vfetk</a> *fetk[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>]); <a name="l00544"></a>00544 <a name="l00554"></a>00554 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gd4c2ae8f06b8721031b13ed18631fd48" title="Partition mesh (if applicable).">partFE</a>(<span class="keywordtype">int</span> i, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsFEMparm.html" title="Parameter structure for FEM-specific variables from input files.">FEMparm</a> *feparm, <a name="l00555"></a>00555 <a class="code" href="structsVfetk.html" title="Contains public data members for Vfetk class/module.">Vfetk</a> *fetk[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>]); <a name="l00556"></a>00556 <a name="l00567"></a>00567 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gca674b06e3c15fb8c10e39e82096fa67" title="Solve-estimate-refine.">solveFE</a>(<span class="keywordtype">int</span> i, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsPBEparm.html" title="Parameter structure for PBE variables from input files.">PBEparm</a> *pbeparm, <a class="code" href="structsFEMparm.html" title="Parameter structure for FEM-specific variables from input files.">FEMparm</a> *feparm, <a name="l00568"></a>00568 <a class="code" href="structsVfetk.html" title="Contains public data members for Vfetk class/module.">Vfetk</a> *fetk[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>]); <a name="l00569"></a>00569 <a name="l00582"></a>00582 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gf2493d6ed066b920ef8f5e37533b700d" title="Estimate error, mark mesh, and refine mesh after solve.">postRefineFE</a>(<span class="keywordtype">int</span> icalc, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsFEMparm.html" title="Parameter structure for FEM-specific variables from input files.">FEMparm</a> *feparm, <a name="l00583"></a>00583 <a class="code" href="structsVfetk.html" title="Contains public data members for Vfetk class/module.">Vfetk</a> *fetk[<a class="code" href="group__NOsh.html#g064c2be26775b2c2244d11aaf63559f6" title="Maximum number of calculations in a run.">NOSH_MAXCALC</a>]); <a name="l00584"></a>00584 <a name="l00594"></a>00594 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#gf4dd79aefdee50f5bddc206e6302fd34" title="Write FEM data to files.">writedataFE</a>(<span class="keywordtype">int</span> rank, <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a class="code" href="structsPBEparm.html" title="Parameter structure for PBE variables from input files.">PBEparm</a> *pbeparm, <a class="code" href="structsVfetk.html" title="Contains public data members for Vfetk class/module.">Vfetk</a> *fetk); <a name="l00595"></a>00595 <a name="l00601"></a>00601 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g13242b98c256ee3cf6613c52d194c1f9" title="Calculate non-polar energies.">energyAPOL</a>( <a name="l00602"></a>00602 <a class="code" href="structsAPOLparm.html" title="Parameter structure for APOL-specific variables from input files.">APOLparm</a> *apolparm, <a name="l00603"></a>00603 <span class="keywordtype">double</span> sasa, <a name="l00604"></a>00604 <span class="keywordtype">double</span> sav, <a name="l00605"></a>00605 <span class="keywordtype">double</span> atomsasa[], <a name="l00606"></a>00606 <span class="keywordtype">double</span> atomwcaEnergy[], <a name="l00607"></a>00607 <span class="keywordtype">int</span> numatoms <a name="l00608"></a>00608 ); <a name="l00609"></a>00609 <a name="l00615"></a>00615 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g3a8e8616dbc43a553e8f51939acfeaa8" title="Calculate non-polar forces.">forceAPOL</a>( <a name="l00616"></a>00616 <a class="code" href="structsVacc.html" title="Oracle for solvent- and ion-accessibility around a biomolecule.">Vacc</a> *acc, <a name="l00617"></a>00617 Vmem *mem, <a name="l00618"></a>00618 <a class="code" href="structsAPOLparm.html" title="Parameter structure for APOL-specific variables from input files.">APOLparm</a> *apolparm, <a name="l00620"></a>00620 <span class="keywordtype">int</span> *nforce, <a name="l00622"></a>00622 <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> **atomForce, <a name="l00624"></a>00624 <a class="code" href="structsValist.html" title="Container class for list of atom objects.">Valist</a> *alist, <a name="l00625"></a>00625 <a class="code" href="structsVclist.html" title="Atom cell list.">Vclist</a> *clist <a name="l00626"></a>00626 ); <a name="l00627"></a>00627 <a name="l00633"></a>00633 <span class="keywordtype">int</span> <a class="code" href="group__Frontend.html#g777e5bac9e149e6c9b51cbca372cfdfb" title="Upperlevel routine to the non-polar energy and force routines.">initAPOL</a>( <a name="l00634"></a>00634 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00635"></a>00635 Vmem *mem, <a name="l00636"></a>00636 <a class="code" href="structVparam.html" title="Reads and assigns charge/radii parameters.">Vparam</a> *param, <a name="l00637"></a>00637 <a class="code" href="structsAPOLparm.html" title="Parameter structure for APOL-specific variables from input files.">APOLparm</a> *apolparm, <a name="l00638"></a>00638 <span class="keywordtype">int</span> *nforce, <a name="l00639"></a>00639 <a class="code" href="structAtomForce.html" title="Structure to hold atomic forces.">AtomForce</a> **atomForce, <a name="l00640"></a>00640 <a class="code" href="structsValist.html" title="Container class for list of atom objects.">Valist</a> *alist <a name="l00641"></a>00641 ); <a name="l00642"></a>00642 <a name="l00648"></a>00648 Vrc_Codes <a class="code" href="group__Frontend.html#g26b8b211a2a3049f5e424f773a8207b7" title="Load the meshes given in NOsh into geometry objects.">loadMeshes</a>( <a name="l00649"></a>00649 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00650"></a>00650 Gem *gm[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>] <a name="l00652"></a>00652 ); <a name="l00653"></a>00653 <a name="l00658"></a>00658 <span class="keywordtype">void</span> <a class="code" href="group__Frontend.html#gddc9fadc54a9e22e8b2b2efc74066273" title="Destroy the loaded meshes.">killMeshes</a>( <a name="l00659"></a>00659 <a class="code" href="structsNOsh.html" title="Class for parsing fixed format input files.">NOsh</a> *nosh, <a name="l00660"></a>00660 Gem *alist[<a class="code" href="group__NOsh.html#g1902c17d72c22bc51826d07f57ce8631" title="Maximum number of molecules in a run.">NOSH_MAXMOL</a>] <a name="l00661"></a>00661 ); <a name="l00662"></a>00662 <span class="preprocessor">#endif</span> <a name="l00663"></a>00663 <span class="preprocessor"></span> <a name="l00664"></a>00664 <span class="preprocessor">#endif</span> <a name="l00665"></a>00665 <span class="preprocessor"></span> </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>