• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

src/generic/apbs/vacc.h

Go to the documentation of this file.
00001 
00054 #ifndef _VACC_H_
00055 #define _VACC_H_
00056 
00057 /* Generic headers */
00058 #include "maloc/maloc.h"
00059 #include "apbs/vhal.h"
00060 
00061 /* Headers specific to this file */
00062 #include "apbs/valist.h"
00063 #include "apbs/vclist.h"
00064 #include "apbs/vatom.h"
00065 #include "apbs/vunit.h"
00066 #include "apbs/apolparm.h"
00067 
00073 struct sVaccSurf {
00074     Vmem *mem;  
00075     double *xpts;  
00076     double *ypts;  
00077     double *zpts;  
00078     char *bpts;  
00080     double area;  
00081     int npts;  
00082     double probe_radius;  
00084 };
00085 
00090 typedef struct sVaccSurf VaccSurf;
00091 
00097 struct sVacc {
00098 
00099   Vmem *mem;  
00100   Valist *alist;  
00101   Vclist *clist;  
00102   int *atomFlags;  
00105   VaccSurf *refSphere;  
00106   VaccSurf **surf;  
00109   Vset acc;  
00111   double surf_density;  
00114 };
00115 
00120 typedef struct sVacc Vacc;
00121 
00122 #if !defined(VINLINE_VACC)
00123 
00129     VEXTERNC unsigned long int Vacc_memChk(
00130             Vacc *thee 
00131             );
00132 
00133 #else /* if defined(VINLINE_VACC) */
00134 
00135 #   define Vacc_memChk(thee) (Vmem_bytes((thee)->mem))
00136 
00137 #endif /* if !defined(VINLINE_VACC) */
00138 
00146 VEXTERNC VaccSurf* VaccSurf_ctor(
00147         Vmem *mem,  
00148         double probe_radius,  
00149         int nsphere  
00150         );
00151 
00159 VEXTERNC int VaccSurf_ctor2(
00160         VaccSurf *thee,  
00161         Vmem *mem,  
00162         double probe_radius,  
00163         int nsphere  
00164         );
00165 
00171 VEXTERNC void VaccSurf_dtor(
00172         VaccSurf **thee  
00173         );
00174 
00180 VEXTERNC void VaccSurf_dtor2(
00181         VaccSurf *thee  
00182         );
00183 
00198 VEXTERNC VaccSurf* VaccSurf_refSphere(
00199         Vmem *mem,  
00200         int npts 
00201         );
00202 
00210 VEXTERNC VaccSurf* Vacc_atomSurf(
00211         Vacc *thee,  
00212         Vatom *atom,  
00213         VaccSurf *ref,  
00215         double probe_radius  
00216         );
00217 
00218 
00223 VEXTERNC Vacc* Vacc_ctor(
00224         Valist *alist,  
00225         Vclist *clist,  
00227         double surf_density  
00229         );
00230 
00235 VEXTERNC int Vacc_ctor2(
00236         Vacc *thee, 
00237         Valist *alist, 
00238         Vclist *clist, 
00240         double surf_density  
00242         );
00243 
00248 VEXTERNC void Vacc_dtor(
00249         Vacc **thee 
00250         );
00251 
00256 VEXTERNC void Vacc_dtor2(
00257         Vacc *thee 
00258         );
00259 
00270 VEXTERNC double Vacc_vdwAcc(
00271         Vacc *thee,  
00272         double center[VAPBS_DIM] 
00273         );
00274 
00286 VEXTERNC double Vacc_ivdwAcc(
00287         Vacc *thee, 
00288         double center[VAPBS_DIM], 
00289         double radius 
00290         );
00291 
00306 VEXTERNC double Vacc_molAcc(
00307         Vacc *thee, 
00308         double center[VAPBS_DIM], 
00309         double radius 
00310         );
00311 
00330 VEXTERNC double Vacc_fastMolAcc(
00331         Vacc *thee,  
00332         double center[VAPBS_DIM],  
00333         double radius 
00334         );
00335 
00347 VEXTERNC double Vacc_splineAcc(
00348         Vacc *thee, 
00349         double center[VAPBS_DIM], 
00350         double win, 
00351         double infrad  
00352         );
00353 
00359 VEXTERNC void Vacc_splineAccGrad(
00360         Vacc *thee, 
00361         double center[VAPBS_DIM], 
00362         double win, 
00363         double infrad,  
00364         double *grad 
00365         );
00366 
00378 VEXTERNC double Vacc_splineAccAtom(
00379         Vacc *thee, 
00380         double center[VAPBS_DIM], 
00381         double win, 
00382         double infrad, 
00383         Vatom *atom 
00384         );
00385 
00396 VEXTERNC void Vacc_splineAccGradAtomUnnorm(
00397         Vacc *thee, 
00398         double center[VAPBS_DIM], 
00399         double win, 
00400         double infrad, 
00401         Vatom *atom, 
00402         double *force 
00403         );
00404 
00416 VEXTERNC void Vacc_splineAccGradAtomNorm(
00417         Vacc *thee, 
00418         double center[VAPBS_DIM], 
00419         double win, 
00420         double infrad, 
00421         Vatom *atom, 
00422         double *force 
00423         );
00424 
00432 VEXTERNC void Vacc_splineAccGradAtomNorm4(
00433         Vacc *thee, 
00434         double center[VAPBS_DIM], 
00435         double win, 
00436         double infrad, 
00437         Vatom *atom, 
00438         double *force 
00439         );
00440 
00448 VEXTERNC void Vacc_splineAccGradAtomNorm3(
00449   Vacc *thee, 
00450   double center[VAPBS_DIM], 
00451   double win, 
00452   double infrad, 
00453   Vatom *atom, 
00454   double *force 
00455   );
00456 
00457 
00467 VEXTERNC double Vacc_SASA(
00468         Vacc *thee,  
00469         double radius  
00470         );
00471 
00479 VEXTERNC double Vacc_totalSASA(
00480         Vacc *thee,  
00481         double radius  
00482         );
00483 
00491 VEXTERNC double Vacc_atomSASA(
00492         Vacc *thee,  
00493         double radius,  
00494         Vatom *atom  
00495         );
00496 
00503 VEXTERNC VaccSurf* Vacc_atomSASPoints(
00504         Vacc *thee,  
00505         double radius,  
00506         Vatom *atom  
00507         );
00508 
00514 VEXTERNC void Vacc_atomdSAV(
00515        Vacc *thee, 
00516        double radius, 
00517        Vatom *atom, 
00518        double *dSA 
00519        );
00520 
00526 VEXTERNC void Vacc_atomdSASA(
00527        Vacc *thee, 
00528        double dpos, 
00529        double radius, 
00530        Vatom *atom, 
00531        double *dSA 
00532        );
00533 
00539 VEXTERNC void Vacc_totalAtomdSASA(
00540         Vacc *thee, 
00541         double dpos, 
00542         double radius, 
00543         Vatom *atom, 
00544         double *dSA 
00545         );
00546 
00552 VEXTERNC void Vacc_totalAtomdSAV(
00553          Vacc *thee, 
00554          double dpos, 
00555          double radius, 
00556          Vatom *atom, 
00557          double *dSA, 
00558          Vclist *clist 
00559          );
00560 
00568 VEXTERNC double Vacc_totalSAV(
00569  Vacc *thee,  
00570  Vclist *clist, 
00571  APOLparm *apolparm,  
00573  double radius  
00574  );
00575 
00582 VEXTERNC int Vacc_wcaEnergy(
00583          Vacc *thee,  
00584         APOLparm *apolparm,  
00585         Valist *alist, 
00586         Vclist *clist 
00587         );
00594 VEXTERNC int Vacc_wcaForceAtom(Vacc *thee, 
00595          APOLparm *apolparm,  
00596          Vclist *clist, 
00597          Vatom *atom, 
00598          double *force 
00599          );
00600 
00606 VEXTERNC int Vacc_wcaEnergyAtom(
00607  Vacc *thee, 
00608  APOLparm *apolparm, 
00609  Valist *alist, 
00610  Vclist *clist, 
00611  int iatom, 
00612  double *value 
00613  );
00614 
00615 #endif    /* ifndef _VACC_H_ */

Generated on Wed Oct 20 2010 12:01:33 for APBS by  doxygen 1.7.2