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

vacc.h

Go to the documentation of this file.
00001 
00049 #ifndef _VACC_H_
00050 #define _VACC_H_
00051 
00052 /* Generic headers */
00053 #include "maloc/maloc.h"
00054 #include "apbs/vhal.h"
00055 
00056 /* Headers specific to this file */
00057 #include "apbs/valist.h"
00058 #include "apbs/vatom.h"
00059 #include "apbs/vunit.h"
00060 
00064 #define VACCMAXNBOR 20
00065 
00071 struct sVacc {
00072 
00073   Vmem *vmem;               
00074   Valist *alist;            
00075   int **atomIDs;            
00076   int *natoms;              
00078   int *atomFlags;           
00079   double **sphere;          
00081   int nsphere;              
00082   Vset acc;                 
00085   double grid_lower_corner[3]; 
00086   double hx;                
00087   double hy;                
00088   double hzed;              
00089   int nx;                   
00090   int ny;                   
00091   int nz;                   
00092   int n;                    
00093   double max_radius;        
00094   double *area;             
00097 };
00098 
00103 typedef struct sVacc Vacc;
00104 
00105 /* 
00106 // Class Vacc: Inlineable methods (vacc.c)
00108 
00109 #if !defined(VINLINE_VACC)
00110 
00117     int Vacc_memChk(Vacc *thee);
00118 
00119 #else /* if defined(VINLINE_VACC) */
00120 
00121 #   define Vacc_memChk(thee) (Vmem_bytes((thee)->vmem))
00122 
00123 #endif /* if !defined(VINLINE_VACC) */
00124 
00125 /* 
00126 // Class Vacc: Non-Inlineable methods (vacc.c)
00128 
00139 Vacc* Vacc_ctor(Valist *alist, double max_radius, int nx, 
00140                int ny, int nz, int nsphere);
00141 
00153 int Vacc_ctor2(Vacc *thee, Valist *alist, double max_radius, 
00154              int nx, int ny, int nz, int nsphere);
00155 
00172 Vacc* Vacc_ctorFocus(Valist *alist, double max_radius, 
00173              int nx, int ny, int nz, int nsphere, double x_min, double y_min, 
00174                          double z_min, double x_max, double y_max, double z_max);
00175 
00193 int Vacc_ctor2Focus(Vacc *thee, Valist *alist, double max_radius, 
00194              int nx, int ny, int nz, int nsphere, double x_min, double y_min, 
00195                          double z_min, double x_max, double y_max, double z_max);
00196 
00201 void Vacc_dtor(Vacc **thee);
00202 
00207 void Vacc_dtor2(Vacc *thee);
00208 
00221 double Vacc_vdwAcc(Vacc *thee, double center[3]);
00222 
00237 double Vacc_ivdwAcc(Vacc *thee, double center[3], double radius);
00238 
00253 double Vacc_molAcc(Vacc *thee, double center[3], double radius);
00254 
00273 double Vacc_fastMolAcc(Vacc *thee, double center[3], double radius);
00274 
00290 double Vacc_splineAcc(Vacc *thee, double center[3], double win,
00291   double infrad);
00292 
00310 double Vacc_splineAccAtom(Vacc *thee, double center[3], double win,
00311   double infrad, int atomID);
00312 
00330 void Vacc_splineAccGradAtom(Vacc *thee, double center[3], double win,
00331   double infrad, int atomID, double *force);
00332 
00350 double** Vacc_sphere(Vacc *thee, int *npts);
00351 
00361 double Vacc_totalSASA(Vacc *thee, double radius);
00362 
00373 double Vacc_atomSASA(Vacc *thee, double radius, int iatom);
00374 
00375 #endif    /* ifndef _VACC_H_ */
00376 

Generated on Tue Feb 17 09:27:03 2004 for APBS by doxygen1.2.18