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

vpbe.h

Go to the documentation of this file.
00001 
00053 #ifndef _VPBE_H_
00054 #define _VPBE_H_
00055 
00056 /* Generic headers */
00057 #include "maloc/maloc.h"
00058 #include "apbs/vhal.h"
00059 
00060 /* Specific headers */
00061 #include "apbs/vunit.h"
00062 #include "apbs/vatom.h"
00063 #include "apbs/vacc.h"
00064 
00070 struct sVpbe { 
00071 
00072   Vmem *vmem;         
00074   Valist *alist;      
00075   Vacc *acc;          
00077   double T;           
00078   double gamma;       
00079   double soluteDiel;  
00080   double solventDiel; 
00081   double solventRadius;
00085   double bulkIonicStrength; 
00086   double maxIonRadius;      
00089   int    numIon;            
00090   double ionConc[MAXION];   
00091   double ionRadii[MAXION];  
00092   double ionQ[MAXION];      
00094   double xkappa;      
00095   double deblen;      
00096   double zkappa2;     
00097   double zmagic;      
00099   double soluteCenter[3]; 
00100   double soluteRadius; 
00101   double soluteXlen;  
00102   double soluteYlen;  
00103   double soluteZlen;  
00104   double soluteCharge; 
00106   int paramFlag;      
00108 };
00109 
00114 typedef struct sVpbe Vpbe;
00115 
00116 /* 
00117 // Class Vpbe: Inlineable methods (vpbe.c)
00119 
00120 #if !defined(VINLINE_VPBE)
00121 
00128     Valist* Vpbe_getValist(Vpbe *thee);
00129 
00136     Vacc*   Vpbe_getVacc(Vpbe *thee);
00137 
00144     double  Vpbe_getBulkIonicStrength(Vpbe *thee);
00145 
00152     double  Vpbe_getMaxIonRadius(Vpbe *thee);
00153 
00160     double  Vpbe_getTemperature(Vpbe *thee);           
00161 
00168     double  Vpbe_getSoluteDiel(Vpbe *thee); 
00169 
00176     double  Vpbe_getGamma(Vpbe *thee);
00177 
00184     double  Vpbe_getSoluteRadius(Vpbe *thee);
00185 
00192     double  Vpbe_getSoluteXlen(Vpbe *thee);
00193 
00200     double  Vpbe_getSoluteYlen(Vpbe *thee);
00201 
00208     double  Vpbe_getSoluteZlen(Vpbe *thee);
00209 
00216     double* Vpbe_getSoluteCenter(Vpbe *thee);
00217 
00224     double  Vpbe_getSoluteCharge(Vpbe *thee);
00225 
00232     double  Vpbe_getSolventDiel(Vpbe *thee);
00233 
00240     double  Vpbe_getSolventRadius(Vpbe *thee);
00241 
00248     double  Vpbe_getXkappa(Vpbe *thee);
00249 
00256     double  Vpbe_getDeblen(Vpbe *thee);
00257 
00264     double  Vpbe_getZkappa2(Vpbe *thee);
00265 
00272     double  Vpbe_getZmagic(Vpbe *thee);
00273 
00274 #else /* if defined(VINLINE_VPBE) */
00275 #   define Vpbe_getValist(thee) ((thee)->alist)
00276 #   define Vpbe_getVacc(thee) ((thee)->acc)
00277 #   define Vpbe_getBulkIonicStrength(thee) ((thee)->bulkIonicStrength)
00278 #   define Vpbe_getTemperature(thee) ((thee)->T)           
00279 #   define Vpbe_getSoluteDiel(thee) ((thee)->soluteDiel) 
00280 #   define Vpbe_getGamma(thee) ((thee)->gamma) 
00281 #   define Vpbe_getSoluteCenter(thee) ((thee)->soluteCenter)
00282 #   define Vpbe_getSoluteRadius(thee) ((thee)->soluteRadius)
00283 #   define Vpbe_getSoluteXlen(thee) ((thee)->soluteXlen)
00284 #   define Vpbe_getSoluteYlen(thee) ((thee)->soluteYlen)
00285 #   define Vpbe_getSoluteZlen(thee) ((thee)->soluteZlen)
00286 #   define Vpbe_getSoluteCharge(thee) ((thee)->soluteCharge)
00287 #   define Vpbe_getSolventDiel(thee) ((thee)->solventDiel)
00288 #   define Vpbe_getSolventRadius(thee) ((thee)->solventRadius)
00289 #   define Vpbe_getMaxIonRadius(thee) ((thee)->maxIonRadius)
00290 #   define Vpbe_getXkappa(thee) ((thee)->xkappa)
00291 #   define Vpbe_getDeblen(thee) ((thee)->deblen)
00292 #   define Vpbe_getZkappa2(thee) ((thee)->zkappa2)
00293 #   define Vpbe_getZmagic(thee) ((thee)->zmagic)
00294 #endif /* if !defined(VINLINE_VPBE) */
00295 
00296 /* 
00297 // Class Vpbe: Non-Inlineable methods (vpbe.c)
00299 
00332 Vpbe*   Vpbe_ctor(Valist *alist, int ionNum, double *ionConc, 
00333                     double *ionRadii, double *ionQ, double T, double gamma,
00334                     double soluteDiel, double solventDiel,  
00335                     double solventRadius, int focusFlag);
00336 
00368 int    Vpbe_ctor2(Vpbe *thee, Valist *alist, int ionNum, 
00369                     double *ionConc, double *ionRadii, double *ionQ, 
00370                     double T, double gamma, double soluteDiel, 
00371                     double solventDiel, double solventRadius, int focusFlag);
00372 
00383 int     Vpbe_getIons(Vpbe *thee, int *nion, double ionConc[MAXION],
00384                     double ionRadii[MAXION], double ionQ[MAXION]);
00385 
00391 void    Vpbe_dtor(Vpbe **thee);
00392 
00398 void    Vpbe_dtor2(Vpbe *thee);
00399 
00414 double  Vpbe_getCoulombEnergy1(Vpbe *thee);
00415 
00423 int     Vpbe_memChk(Vpbe *thee);
00424 
00425 #endif /* ifndef _VPBE_H_ */
00426 

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