Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

vacc.h

Go to the documentation of this file.
00001 
00060 #ifndef _VACC_H_
00061 #define _VACC_H_
00062 
00063 /* Generic headers */
00064 #include "maloc/maloc.h"
00065 #include "apbs/vhal.h"
00066 
00067 /* Headers specific to this file */
00068 #include "apbs/valist.h"
00069 #include "apbs/vclist.h"
00070 #include "apbs/vatom.h"
00071 #include "apbs/vunit.h"
00072 #include "apbs/apolparm.h"
00073 
00079 struct sVaccSurf {
00080     Vmem *mem;  
00081     double *xpts;  
00082     double *ypts;  
00083     double *zpts;  
00084     int *bpts;  
00086     double area;  
00087     int npts;  
00088     double probe_radius;  
00090 };
00091 
00096 typedef struct sVaccSurf VaccSurf;
00097 
00103 struct sVacc {
00104 
00105   Vmem *mem;  
00106   Valist *alist;  
00107   Vclist *clist;  
00108   int *atomFlags;  
00111   VaccSurf *refSphere;  
00112   VaccSurf **surf;  
00115   Vset acc;  
00117   double surf_density;  
00120 };
00121 
00126 typedef struct sVacc Vacc;
00127 
00128 #if !defined(VINLINE_VACC)
00129 
00135     unsigned long int Vacc_memChk(
00136             Vacc *thee 
00137             );
00138 
00139 #else /* if defined(VINLINE_VACC) */
00140 
00141 #   define Vacc_memChk(thee) (Vmem_bytes((thee)->mem))
00142 
00143 #endif /* if !defined(VINLINE_VACC) */
00144 
00152 VaccSurf* VaccSurf_ctor(
00153         Vmem *mem,  
00154         double probe_radius,  
00155         int nsphere  
00156         );
00157 
00165 int VaccSurf_ctor2(
00166         VaccSurf *thee,  
00167         Vmem *mem,  
00168         double probe_radius,  
00169         int nsphere  
00170         );
00171 
00177 void VaccSurf_dtor(
00178         VaccSurf **thee  
00179         );
00180 
00186 void VaccSurf_dtor2(
00187         VaccSurf *thee  
00188         );
00189 
00204 VaccSurf* VaccSurf_refSphere(
00205         Vmem *mem,  
00206         int npts 
00207         );
00208 
00216 VaccSurf* Vacc_atomSurf(
00217         Vacc *thee,  
00218         Vatom *atom,  
00219         VaccSurf *ref,  
00221         double probe_radius  
00222         );
00223 
00224 
00229 Vacc* Vacc_ctor(
00230         Valist *alist,  
00231         Vclist *clist,  
00233         double surf_density  
00235         );
00236 
00241 int Vacc_ctor2(
00242         Vacc *thee, 
00243         Valist *alist, 
00244         Vclist *clist, 
00246         double surf_density  
00248         );
00249 
00254 void Vacc_dtor(
00255         Vacc **thee 
00256         );
00257 
00262 void Vacc_dtor2(
00263         Vacc *thee 
00264         );
00265 
00276 double Vacc_vdwAcc(
00277         Vacc *thee,  
00278         double center[VAPBS_DIM] 
00279         );
00280 
00292 double Vacc_ivdwAcc(
00293         Vacc *thee, 
00294         double center[VAPBS_DIM], 
00295         double radius 
00296         );
00297 
00312 double Vacc_molAcc(
00313         Vacc *thee, 
00314         double center[VAPBS_DIM], 
00315         double radius 
00316         );
00317 
00336 double Vacc_fastMolAcc(
00337         Vacc *thee,  
00338         double center[VAPBS_DIM],  
00339         double radius 
00340         );
00341 
00353 double Vacc_splineAcc(
00354         Vacc *thee, 
00355         double center[VAPBS_DIM], 
00356         double win, 
00357         double infrad  
00358         );
00359 
00365 void Vacc_splineAccGrad(
00366         Vacc *thee, 
00367         double center[VAPBS_DIM], 
00368         double win, 
00369         double infrad,  
00370         double *grad 
00371         );
00372 
00384 double Vacc_splineAccAtom(
00385         Vacc *thee, 
00386         double center[VAPBS_DIM], 
00387         double win, 
00388         double infrad, 
00389         Vatom *atom 
00390         );
00391 
00402 void Vacc_splineAccGradAtomUnnorm(
00403         Vacc *thee, 
00404         double center[VAPBS_DIM], 
00405         double win, 
00406         double infrad, 
00407         Vatom *atom, 
00408         double *force 
00409         );
00410 
00422 void Vacc_splineAccGradAtomNorm(
00423         Vacc *thee, 
00424         double center[VAPBS_DIM], 
00425         double win, 
00426         double infrad, 
00427         Vatom *atom, 
00428         double *force 
00429         );
00430 
00438 void Vacc_splineAccGradAtomNorm4(
00439         Vacc *thee, 
00440         double center[VAPBS_DIM], 
00441         double win, 
00442         double infrad, 
00443         Vatom *atom, 
00444         double *force 
00445         );
00446 
00454 void Vacc_splineAccGradAtomNorm3(
00455                 Vacc *thee, 
00456                 double center[VAPBS_DIM], 
00457                 double win, 
00458                 double infrad, 
00459                 Vatom *atom, 
00460                 double *force 
00461                 );
00462 
00463 
00473 double Vacc_SASA(
00474         Vacc *thee,  
00475         double radius  
00476         );
00477 
00485 double Vacc_totalSASA(
00486         Vacc *thee,  
00487         double radius  
00488         );
00489 
00497 double Vacc_atomSASA(
00498         Vacc *thee,  
00499         double radius,  
00500         Vatom *atom  
00501         );
00502 
00509 VaccSurf* Vacc_atomSASPoints(
00510         Vacc *thee,  
00511         double radius,  
00512         Vatom *atom  
00513         );
00514 
00520 void Vacc_atomdSAV(
00521                                                         Vacc *thee, 
00522                                                         double radius, 
00523                                                         Vatom *atom, 
00524                                                         double *dSA 
00525                                                         );
00526 
00532 void Vacc_atomdSASA(
00533                                                         Vacc *thee, 
00534                                                         double dpos, 
00535                                                         double radius, 
00536                                                         Vatom *atom, 
00537                                                         double *dSA 
00538                                                         );
00539 
00545 void Vacc_totalAtomdSASA(
00546                                                          Vacc *thee, 
00547                                                          double dpos, 
00548                                                          double radius, 
00549                                                          Vatom *atom, 
00550                                                          double *dSA 
00551                                                          );
00552 
00558 void Vacc_totalAtomdSAV(
00559                                                                  Vacc *thee, 
00560                                                                  double dpos, 
00561                                                                  double radius, 
00562                                                                  Vatom *atom, 
00563                                                                  double *dSA, 
00564                                                                  Vclist *clist 
00565                                                                  );
00566 
00574 double Vacc_totalSAV(
00575         Vacc *thee,  
00576         Vclist *clist, 
00577         APOLparm *apolparm,  
00579         double radius  
00580         );
00581 
00588 VPUBLIC int Vacc_wcaEnergy(
00589                                                    Vacc *thee,  
00590                                                          APOLparm *apolparm,  
00591                                                          Valist *alist, 
00592                                                          Vclist *clist 
00593                                                          );
00600 VPUBLIC int Vacc_wcaForceAtom(Vacc *thee, 
00601                                                           APOLparm *apolparm,  
00602                                                           Vclist *clist, 
00603                                                           Vatom *atom, 
00604                                                           double *force 
00605                                                    );
00606 
00607 #endif    /* ifndef _VACC_H_ */
00608 

Generated on Tue Apr 15 13:53:14 2008 for APBS by doxygen 1.3.4