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

vpbe.h

Go to the documentation of this file.
00001 
00076 #ifndef _VPBE_H_
00077 #define _VPBE_H_
00078 
00079 /* Generic headers */
00080 #include "maloc/maloc.h"
00081 #include "apbs/vhal.h"
00082 
00083 /* Specific headers */
00084 #include "apbs/vunit.h"
00085 #include "apbs/vatom.h"
00086 #include "apbs/vacc.h"
00087 #include "apbs/vclist.h"
00088 
00094 struct sVpbe { 
00095         
00096         Vmem *vmem;         
00098         Valist *alist;      
00099         Vclist *clist;      
00100         Vacc *acc;          
00102         double T;           
00103         double soluteDiel;  
00104         double solventDiel; 
00105         double solventRadius;
00109         double bulkIonicStrength; 
00110         double maxIonRadius;      
00113         int    numIon;            
00114         double ionConc[MAXION];   
00115         double ionRadii[MAXION];  
00116         double ionQ[MAXION];      
00118         double xkappa;      
00119         double deblen;      
00120         double zkappa2;     
00121         double zmagic;      
00123         double soluteCenter[3]; 
00124         double soluteRadius; 
00125         double soluteXlen;  
00126         double soluteYlen;  
00127         double soluteZlen;  
00128         double soluteCharge; 
00130         double smvolume;        
00131         double smsize;          
00132         int ipkey;                      
00135         int paramFlag;      
00137 };
00138 
00143 typedef struct sVpbe Vpbe;
00144 
00145 /* ///////////////////////////////////////////////////////////////////////////
00146    // Class Vpbe: Inlineable methods (vpbe.c)
00148 
00149 #if !defined(VINLINE_VPBE)
00150 
00157 Valist* Vpbe_getValist(Vpbe *thee);
00158 
00165 Vacc*   Vpbe_getVacc(Vpbe *thee);
00166 
00173 double  Vpbe_getBulkIonicStrength(Vpbe *thee);
00174 
00181 double  Vpbe_getMaxIonRadius(Vpbe *thee);
00182 
00189 double  Vpbe_getTemperature(Vpbe *thee);           
00190 
00197 double  Vpbe_getSoluteDiel(Vpbe *thee); 
00198 
00205 double  Vpbe_getGamma(Vpbe *thee);
00206 
00213 double  Vpbe_getSoluteRadius(Vpbe *thee);
00214 
00221 double  Vpbe_getSoluteXlen(Vpbe *thee);
00222 
00229 double  Vpbe_getSoluteYlen(Vpbe *thee);
00230 
00237 double  Vpbe_getSoluteZlen(Vpbe *thee);
00238 
00245 double* Vpbe_getSoluteCenter(Vpbe *thee);
00246 
00253 double  Vpbe_getSoluteCharge(Vpbe *thee);
00254 
00261 double  Vpbe_getSolventDiel(Vpbe *thee);
00262 
00269 double  Vpbe_getSolventRadius(Vpbe *thee);
00270 
00277 double  Vpbe_getXkappa(Vpbe *thee);
00278 
00285 double  Vpbe_getDeblen(Vpbe *thee);
00286 
00293 double  Vpbe_getZkappa2(Vpbe *thee);
00294 
00301 double  Vpbe_getZmagic(Vpbe *thee);
00302 
00303 #else /* if defined(VINLINE_VPBE) */
00304 #   define Vpbe_getValist(thee) ((thee)->alist)
00305 #   define Vpbe_getVacc(thee) ((thee)->acc)
00306 #   define Vpbe_getBulkIonicStrength(thee) ((thee)->bulkIonicStrength)
00307 #   define Vpbe_getTemperature(thee) ((thee)->T)           
00308 #   define Vpbe_getSoluteDiel(thee) ((thee)->soluteDiel) 
00309 #   define Vpbe_getSoluteCenter(thee) ((thee)->soluteCenter)
00310 #   define Vpbe_getSoluteRadius(thee) ((thee)->soluteRadius)
00311 #   define Vpbe_getSoluteXlen(thee) ((thee)->soluteXlen)
00312 #   define Vpbe_getSoluteYlen(thee) ((thee)->soluteYlen)
00313 #   define Vpbe_getSoluteZlen(thee) ((thee)->soluteZlen)
00314 #   define Vpbe_getSoluteCharge(thee) ((thee)->soluteCharge)
00315 #   define Vpbe_getSolventDiel(thee) ((thee)->solventDiel)
00316 #   define Vpbe_getSolventRadius(thee) ((thee)->solventRadius)
00317 #   define Vpbe_getMaxIonRadius(thee) ((thee)->maxIonRadius)
00318 #   define Vpbe_getXkappa(thee) ((thee)->xkappa)
00319 #   define Vpbe_getDeblen(thee) ((thee)->deblen)
00320 #   define Vpbe_getZkappa2(thee) ((thee)->zkappa2)
00321 #   define Vpbe_getZmagic(thee) ((thee)->zmagic)
00322 #endif /* if !defined(VINLINE_VPBE) */
00323 
00324 /* ///////////////////////////////////////////////////////////////////////////
00325    // Class Vpbe: Non-Inlineable methods (vpbe.c)
00327 
00360 Vpbe*   Vpbe_ctor(Valist *alist, int ionNum, double *ionConc, 
00361                                                    double *ionRadii, double *ionQ, double T, 
00362                                                    double soluteDiel, double solventDiel,  
00363                                                    double solventRadius, int focusFlag, double sdens);
00364 
00397 int    Vpbe_ctor2(Vpbe *thee, Valist *alist, int ionNum, 
00398                                                    double *ionConc, double *ionRadii, double *ionQ, 
00399                                                    double T, double soluteDiel, 
00400                                                    double solventDiel, double solventRadius, int focusFlag,
00401                                                    double sdens);
00402 
00413 int     Vpbe_getIons(Vpbe *thee, int *nion, double ionConc[MAXION],
00414                                                           double ionRadii[MAXION], double ionQ[MAXION]);
00415 
00421 void    Vpbe_dtor(Vpbe **thee);
00422 
00428 void    Vpbe_dtor2(Vpbe *thee);
00429 
00444 double  Vpbe_getCoulombEnergy1(Vpbe *thee);
00445 
00453 unsigned long int Vpbe_memChk(Vpbe *thee);
00454 
00455 #endif /* ifndef _VPBE_H_ */
00456 

Generated on Thu Jul 12 11:49:47 2007 for APBS by doxygen 1.3.4