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

vpbe.h

Go to the documentation of this file.
00001 
00064 #ifndef _VPBE_H_
00065 #define _VPBE_H_
00066 
00067 /* Generic headers */
00068 #include "maloc/maloc.h"
00069 #include "apbs/vhal.h"
00070 
00071 /* Specific headers */
00072 #include "apbs/vunit.h"
00073 #include "apbs/vatom.h"
00074 #include "apbs/vacc.h"
00075 #include "apbs/vclist.h"
00076 
00082 struct sVpbe { 
00083         
00084         Vmem *vmem;         
00086         Valist *alist;      
00087         Vclist *clist;      
00088         Vacc *acc;          
00090         double T;           
00091         double soluteDiel;  
00092         double solventDiel; 
00093         double solventRadius;
00097         double bulkIonicStrength; 
00098         double maxIonRadius;      
00101         int    numIon;            
00102         double ionConc[MAXION];   
00103         double ionRadii[MAXION];  
00104         double ionQ[MAXION];      
00106         double xkappa;      
00107         double deblen;      
00108         double zkappa2;     
00109         double zmagic;      
00111         double soluteCenter[3]; 
00112         double soluteRadius; 
00113         double soluteXlen;  
00114         double soluteYlen;  
00115         double soluteZlen;  
00116         double soluteCharge; 
00118         double smvolume;        
00119         double smsize;          
00120         int ipkey;                      
00123         int paramFlag;      
00125 };
00126 
00131 typedef struct sVpbe Vpbe;
00132 
00133 /* ///////////////////////////////////////////////////////////////////////////
00134    // Class Vpbe: Inlineable methods (vpbe.c)
00136 
00137 #if !defined(VINLINE_VPBE)
00138 
00145 Valist* Vpbe_getValist(Vpbe *thee);
00146 
00153 Vacc*   Vpbe_getVacc(Vpbe *thee);
00154 
00161 double  Vpbe_getBulkIonicStrength(Vpbe *thee);
00162 
00169 double  Vpbe_getMaxIonRadius(Vpbe *thee);
00170 
00177 double  Vpbe_getTemperature(Vpbe *thee);           
00178 
00185 double  Vpbe_getSoluteDiel(Vpbe *thee); 
00186 
00193 double  Vpbe_getGamma(Vpbe *thee);
00194 
00201 double  Vpbe_getSoluteRadius(Vpbe *thee);
00202 
00209 double  Vpbe_getSoluteXlen(Vpbe *thee);
00210 
00217 double  Vpbe_getSoluteYlen(Vpbe *thee);
00218 
00225 double  Vpbe_getSoluteZlen(Vpbe *thee);
00226 
00233 double* Vpbe_getSoluteCenter(Vpbe *thee);
00234 
00241 double  Vpbe_getSoluteCharge(Vpbe *thee);
00242 
00249 double  Vpbe_getSolventDiel(Vpbe *thee);
00250 
00257 double  Vpbe_getSolventRadius(Vpbe *thee);
00258 
00265 double  Vpbe_getXkappa(Vpbe *thee);
00266 
00273 double  Vpbe_getDeblen(Vpbe *thee);
00274 
00281 double  Vpbe_getZkappa2(Vpbe *thee);
00282 
00289 double  Vpbe_getZmagic(Vpbe *thee);
00290 
00291 #else /* if defined(VINLINE_VPBE) */
00292 #   define Vpbe_getValist(thee) ((thee)->alist)
00293 #   define Vpbe_getVacc(thee) ((thee)->acc)
00294 #   define Vpbe_getBulkIonicStrength(thee) ((thee)->bulkIonicStrength)
00295 #   define Vpbe_getTemperature(thee) ((thee)->T)           
00296 #   define Vpbe_getSoluteDiel(thee) ((thee)->soluteDiel) 
00297 #   define Vpbe_getSoluteCenter(thee) ((thee)->soluteCenter)
00298 #   define Vpbe_getSoluteRadius(thee) ((thee)->soluteRadius)
00299 #   define Vpbe_getSoluteXlen(thee) ((thee)->soluteXlen)
00300 #   define Vpbe_getSoluteYlen(thee) ((thee)->soluteYlen)
00301 #   define Vpbe_getSoluteZlen(thee) ((thee)->soluteZlen)
00302 #   define Vpbe_getSoluteCharge(thee) ((thee)->soluteCharge)
00303 #   define Vpbe_getSolventDiel(thee) ((thee)->solventDiel)
00304 #   define Vpbe_getSolventRadius(thee) ((thee)->solventRadius)
00305 #   define Vpbe_getMaxIonRadius(thee) ((thee)->maxIonRadius)
00306 #   define Vpbe_getXkappa(thee) ((thee)->xkappa)
00307 #   define Vpbe_getDeblen(thee) ((thee)->deblen)
00308 #   define Vpbe_getZkappa2(thee) ((thee)->zkappa2)
00309 #   define Vpbe_getZmagic(thee) ((thee)->zmagic)
00310 #endif /* if !defined(VINLINE_VPBE) */
00311 
00312 /* ///////////////////////////////////////////////////////////////////////////
00313    // Class Vpbe: Non-Inlineable methods (vpbe.c)
00315 
00348 Vpbe*   Vpbe_ctor(Valist *alist, int ionNum, double *ionConc, 
00349                                                    double *ionRadii, double *ionQ, double T, 
00350                                                    double soluteDiel, double solventDiel,  
00351                                                    double solventRadius, int focusFlag, double sdens);
00352 
00385 int    Vpbe_ctor2(Vpbe *thee, Valist *alist, int ionNum, 
00386                                                    double *ionConc, double *ionRadii, double *ionQ, 
00387                                                    double T, double soluteDiel, 
00388                                                    double solventDiel, double solventRadius, int focusFlag,
00389                                                    double sdens);
00390 
00401 int     Vpbe_getIons(Vpbe *thee, int *nion, double ionConc[MAXION],
00402                                                           double ionRadii[MAXION], double ionQ[MAXION]);
00403 
00409 void    Vpbe_dtor(Vpbe **thee);
00410 
00416 void    Vpbe_dtor2(Vpbe *thee);
00417 
00432 double  Vpbe_getCoulombEnergy1(Vpbe *thee);
00433 
00441 unsigned long int Vpbe_memChk(Vpbe *thee);
00442 
00443 #endif /* ifndef _VPBE_H_ */
00444 

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