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 #include "apbs/vclist.h"
00065 
00071 struct sVpbe { 
00072 
00073   Vmem *vmem;         
00075   Valist *alist;      
00076   Vclist *clist;      
00077   Vacc *acc;          
00079   double T;           
00080   double gamma;       
00081   double soluteDiel;  
00082   double solventDiel; 
00083   double solventRadius;
00087   double bulkIonicStrength; 
00088   double maxIonRadius;      
00091   int    numIon;            
00092   double ionConc[MAXION];   
00093   double ionRadii[MAXION];  
00094   double ionQ[MAXION];      
00096   double xkappa;      
00097   double deblen;      
00098   double zkappa2;     
00099   double zmagic;      
00101   double soluteCenter[3]; 
00102   double soluteRadius; 
00103   double soluteXlen;  
00104   double soluteYlen;  
00105   double soluteZlen;  
00106   double soluteCharge; 
00108   int paramFlag;      
00110 };
00111 
00116 typedef struct sVpbe Vpbe;
00117 
00118 /* ///////////////////////////////////////////////////////////////////////////
00119 // Class Vpbe: Inlineable methods (vpbe.c)
00121 
00122 #if !defined(VINLINE_VPBE)
00123 
00130     Valist* Vpbe_getValist(Vpbe *thee);
00131 
00138     Vacc*   Vpbe_getVacc(Vpbe *thee);
00139 
00146     double  Vpbe_getBulkIonicStrength(Vpbe *thee);
00147 
00154     double  Vpbe_getMaxIonRadius(Vpbe *thee);
00155 
00162     double  Vpbe_getTemperature(Vpbe *thee);           
00163 
00170     double  Vpbe_getSoluteDiel(Vpbe *thee); 
00171 
00178     double  Vpbe_getGamma(Vpbe *thee);
00179 
00186     double  Vpbe_getSoluteRadius(Vpbe *thee);
00187 
00194     double  Vpbe_getSoluteXlen(Vpbe *thee);
00195 
00202     double  Vpbe_getSoluteYlen(Vpbe *thee);
00203 
00210     double  Vpbe_getSoluteZlen(Vpbe *thee);
00211 
00218     double* Vpbe_getSoluteCenter(Vpbe *thee);
00219 
00226     double  Vpbe_getSoluteCharge(Vpbe *thee);
00227 
00234     double  Vpbe_getSolventDiel(Vpbe *thee);
00235 
00242     double  Vpbe_getSolventRadius(Vpbe *thee);
00243 
00250     double  Vpbe_getXkappa(Vpbe *thee);
00251 
00258     double  Vpbe_getDeblen(Vpbe *thee);
00259 
00266     double  Vpbe_getZkappa2(Vpbe *thee);
00267 
00274     double  Vpbe_getZmagic(Vpbe *thee);
00275 
00276 #else /* if defined(VINLINE_VPBE) */
00277 #   define Vpbe_getValist(thee) ((thee)->alist)
00278 #   define Vpbe_getVacc(thee) ((thee)->acc)
00279 #   define Vpbe_getBulkIonicStrength(thee) ((thee)->bulkIonicStrength)
00280 #   define Vpbe_getTemperature(thee) ((thee)->T)           
00281 #   define Vpbe_getSoluteDiel(thee) ((thee)->soluteDiel) 
00282 #   define Vpbe_getGamma(thee) ((thee)->gamma) 
00283 #   define Vpbe_getSoluteCenter(thee) ((thee)->soluteCenter)
00284 #   define Vpbe_getSoluteRadius(thee) ((thee)->soluteRadius)
00285 #   define Vpbe_getSoluteXlen(thee) ((thee)->soluteXlen)
00286 #   define Vpbe_getSoluteYlen(thee) ((thee)->soluteYlen)
00287 #   define Vpbe_getSoluteZlen(thee) ((thee)->soluteZlen)
00288 #   define Vpbe_getSoluteCharge(thee) ((thee)->soluteCharge)
00289 #   define Vpbe_getSolventDiel(thee) ((thee)->solventDiel)
00290 #   define Vpbe_getSolventRadius(thee) ((thee)->solventRadius)
00291 #   define Vpbe_getMaxIonRadius(thee) ((thee)->maxIonRadius)
00292 #   define Vpbe_getXkappa(thee) ((thee)->xkappa)
00293 #   define Vpbe_getDeblen(thee) ((thee)->deblen)
00294 #   define Vpbe_getZkappa2(thee) ((thee)->zkappa2)
00295 #   define Vpbe_getZmagic(thee) ((thee)->zmagic)
00296 #endif /* if !defined(VINLINE_VPBE) */
00297 
00298 /* ///////////////////////////////////////////////////////////////////////////
00299 // Class Vpbe: Non-Inlineable methods (vpbe.c)
00301 
00335 Vpbe*   Vpbe_ctor(Valist *alist, int ionNum, double *ionConc, 
00336                     double *ionRadii, double *ionQ, double T, double gamma,
00337                     double soluteDiel, double solventDiel,  
00338                     double solventRadius, int focusFlag, double sdens);
00339 
00373 int    Vpbe_ctor2(Vpbe *thee, Valist *alist, int ionNum, 
00374                     double *ionConc, double *ionRadii, double *ionQ, 
00375                     double T, double gamma, double soluteDiel, 
00376                     double solventDiel, double solventRadius, int focusFlag,
00377                     double sdens);
00378 
00389 int     Vpbe_getIons(Vpbe *thee, int *nion, double ionConc[MAXION],
00390                     double ionRadii[MAXION], double ionQ[MAXION]);
00391 
00397 void    Vpbe_dtor(Vpbe **thee);
00398 
00404 void    Vpbe_dtor2(Vpbe *thee);
00405 
00420 double  Vpbe_getCoulombEnergy1(Vpbe *thee);
00421 
00429 unsigned long int Vpbe_memChk(Vpbe *thee);
00430 
00431 #endif /* ifndef _VPBE_H_ */
00432 

Generated on Tue Dec 6 10:05:32 2005 for APBS by doxygen 1.3.5