APBS  1.5
vpbe.h
Go to the documentation of this file.
1 
66 #ifndef _VPBE_H_
67 #define _VPBE_H_
68 
69 #include "apbscfg.h"
70 
71 #include "maloc/maloc.h"
72 
73 #include "generic/vhal.h"
74 #include "generic/vunit.h"
75 #include "generic/vatom.h"
76 #include "generic/vacc.h"
77 #include "generic/vclist.h"
78 
84 struct sVpbe {
85 
86  Vmem *vmem;
90  Vacc *acc;
92  double T;
93  double soluteDiel;
94  double solventDiel;
95  double solventRadius;
100  double maxIonRadius;
103  int numIon;
104  double ionConc[MAXION];
105  double ionRadii[MAXION];
106  double ionQ[MAXION];
108  double xkappa;
109  double deblen;
110  double zkappa2;
111  double zmagic;
113  double soluteCenter[3];
114  double soluteRadius;
115  double soluteXlen;
116  double soluteYlen;
117  double soluteZlen;
118  double soluteCharge;
120  double smvolume;
121  double smsize;
122  int ipkey;
125  int paramFlag;
127  /*-------------------------------------------------------*/
128  /* Added by Michael Grabe */
129  /*-------------------------------------------------------*/
130 
131  double z_mem;
132  double L;
133  double membraneDiel;
134  double V;
136  /*-------------------------------------------------------*/
137 
138 };
139 
144 typedef struct sVpbe Vpbe;
145 
146 /* ///////////////////////////////////////////////////////////////////////////
147  // Class Vpbe: Inlineable methods (vpbe.c)
149 
150 #if !defined(VINLINE_VPBE)
151 
158 VEXTERNC Valist* Vpbe_getValist(Vpbe *thee);
159 
166 VEXTERNC Vacc* Vpbe_getVacc(Vpbe *thee);
167 
174 VEXTERNC double Vpbe_getBulkIonicStrength(Vpbe *thee);
175 
182 VEXTERNC double Vpbe_getMaxIonRadius(Vpbe *thee);
183 
190 VEXTERNC double Vpbe_getTemperature(Vpbe *thee);
191 
198 VEXTERNC double Vpbe_getSoluteDiel(Vpbe *thee);
199 
206 VEXTERNC double Vpbe_getGamma(Vpbe *thee);
207 
214 VEXTERNC double Vpbe_getSoluteRadius(Vpbe *thee);
215 
222 VEXTERNC double Vpbe_getSoluteXlen(Vpbe *thee);
223 
230 VEXTERNC double Vpbe_getSoluteYlen(Vpbe *thee);
231 
238 VEXTERNC double Vpbe_getSoluteZlen(Vpbe *thee);
239 
246 VEXTERNC double* Vpbe_getSoluteCenter(Vpbe *thee);
247 
254 VEXTERNC double Vpbe_getSoluteCharge(Vpbe *thee);
255 
262 VEXTERNC double Vpbe_getSolventDiel(Vpbe *thee);
263 
270 VEXTERNC double Vpbe_getSolventRadius(Vpbe *thee);
271 
278 VEXTERNC double Vpbe_getXkappa(Vpbe *thee);
279 
286 VEXTERNC double Vpbe_getDeblen(Vpbe *thee);
287 
294 VEXTERNC double Vpbe_getZkappa2(Vpbe *thee);
295 
302 VEXTERNC double Vpbe_getZmagic(Vpbe *thee);
303 
304 /*--------------------------------------------------------------*/
305 /* Added by Michael Grabe */
306 /*--------------------------------------------------------------*/
307 
314 VEXTERNC double Vpbe_getzmem(Vpbe *thee);
315 
322 VEXTERNC double Vpbe_getLmem(Vpbe *thee);
323 
330 VEXTERNC double Vpbe_getmembraneDiel(Vpbe *thee);
331 
337 VEXTERNC double Vpbe_getmemv(Vpbe *thee);
338 
339 /*--------------------------------------------------------------*/
340 
341 #else /* if defined(VINLINE_VPBE) */
342 # define Vpbe_getValist(thee) ((thee)->alist)
343 # define Vpbe_getVacc(thee) ((thee)->acc)
344 # define Vpbe_getBulkIonicStrength(thee) ((thee)->bulkIonicStrength)
345 # define Vpbe_getTemperature(thee) ((thee)->T)
346 # define Vpbe_getSoluteDiel(thee) ((thee)->soluteDiel)
347 # define Vpbe_getSoluteCenter(thee) ((thee)->soluteCenter)
348 # define Vpbe_getSoluteRadius(thee) ((thee)->soluteRadius)
349 # define Vpbe_getSoluteXlen(thee) ((thee)->soluteXlen)
350 # define Vpbe_getSoluteYlen(thee) ((thee)->soluteYlen)
351 # define Vpbe_getSoluteZlen(thee) ((thee)->soluteZlen)
352 # define Vpbe_getSoluteCharge(thee) ((thee)->soluteCharge)
353 # define Vpbe_getSolventDiel(thee) ((thee)->solventDiel)
354 # define Vpbe_getSolventRadius(thee) ((thee)->solventRadius)
355 # define Vpbe_getMaxIonRadius(thee) ((thee)->maxIonRadius)
356 # define Vpbe_getXkappa(thee) ((thee)->xkappa)
357 # define Vpbe_getDeblen(thee) ((thee)->deblen)
358 # define Vpbe_getZkappa2(thee) ((thee)->zkappa2)
359 # define Vpbe_getZmagic(thee) ((thee)->zmagic)
360 
361 /*------------------------------------------------------------*/
362 /* Added by Michael Grabe */
363 /*------------------------------------------------------------*/
364 
365 # define Vpbe_getzmem(thee) ((thee)->z_mem)
366 # define Vpbe_getLmem(thee) ((thee)->L)
367 # define Vpbe_getmembraneDiel(thee) ((thee)->membraneDiel)
368 # define Vpbe_getmemv(thee) ((thee)->V)
369 
370 /*------------------------------------------------------------*/
371 
372 
373 #endif /* if !defined(VINLINE_VPBE) */
374 
375 /* ///////////////////////////////////////////////////////////////////////////
376  // Class Vpbe: Non-Inlineable methods (vpbe.c)
378 
399 VEXTERNC Vpbe* Vpbe_ctor(
400  Valist *alist, /**< Atom list */
401  int ionNum,
402  double *ionConc,
403  double *ionRadii,
404  double *ionQ,
405  double T,
406  double soluteDiel,
407  double solventDiel,
408  double solventRadius,
409  int focusFlag,
410  double sdens,
411  double z_mem,
412  double L,
413  double membraneDiel,
414  double V
415  );
416 
437 VEXTERNC int Vpbe_ctor2(
438  Vpbe *thee,
439  Valist *alist,
440  int ionNum,
441  double *ionConc,
442  double *ionRadii,
443  double *ionQ,
444  double T,
445  double soluteDiel,
446  double solventDiel,
447  double solventRadius,
448  int focusFlag,
449  double sdens,
450  double z_mem,
451  double L,
452  double membraneDiel,
453  double V
454  );
455 
466 VEXTERNC int Vpbe_getIons(Vpbe *thee, int *nion, double ionConc[MAXION],
467  double ionRadii[MAXION], double ionQ[MAXION]);
468 
474 VEXTERNC void Vpbe_dtor(Vpbe **thee);
475 
481 VEXTERNC void Vpbe_dtor2(Vpbe *thee);
482 
497 VEXTERNC double Vpbe_getCoulombEnergy1(Vpbe *thee);
498 
506 VEXTERNC unsigned long int Vpbe_memChk(Vpbe *thee);
507 
508 #endif /* ifndef _VPBE_H_ */
Vacc * acc
Definition: vpbe.h:90
double ionQ[MAXION]
Definition: vpbe.h:106
double soluteYlen
Definition: vpbe.h:116
int ipkey
Definition: vpbe.h:122
Contains public data members for Vpbe class/module.
Definition: vpbe.h:84
Oracle for solvent- and ion-accessibility around a biomolecule.
Definition: vacc.h:108
Vclist * clist
Definition: vpbe.h:89
VEXTERNC double Vpbe_getCoulombEnergy1(Vpbe *thee)
Calculate coulombic energy of set of charges.
Definition: vpbe.c:481
Contains declarations for class Vacc.
double ionRadii[MAXION]
Definition: vpbe.h:105
VEXTERNC double Vpbe_getzmem(Vpbe *thee)
Get z position of the membrane bottom.
Definition: vpbe.c:197
int numIon
Definition: vpbe.h:103
VEXTERNC int Vpbe_ctor2(Vpbe *thee, Valist *alist, int ionNum, double *ionConc, double *ionRadii, double *ionQ, double T, double soluteDiel, double solventDiel, double solventRadius, int focusFlag, double sdens, double z_mem, double L, double membraneDiel, double V)
FORTRAN stub to construct Vpbe objct.
Definition: vpbe.c:264
double bulkIonicStrength
Definition: vpbe.h:99
double z_mem
Definition: vpbe.h:131
VEXTERNC int Vpbe_getIons(Vpbe *thee, int *nion, double ionConc[MAXION], double ionRadii[MAXION], double ionQ[MAXION])
Get information about the counterion species present.
Definition: vpbe.c:535
double soluteDiel
Definition: vpbe.h:93
Contains a collection of useful constants and conversion factors.
VEXTERNC double Vpbe_getLmem(Vpbe *thee)
Get length of the membrane (A)aauthor Michael Grabe.
Definition: vpbe.c:209
double zkappa2
Definition: vpbe.h:110
double V
Definition: vpbe.h:134
Contains declarations for class Vatom.
double membraneDiel
Definition: vpbe.h:133
double ionConc[MAXION]
Definition: vpbe.h:104
double zmagic
Definition: vpbe.h:111
VEXTERNC double Vpbe_getmemv(Vpbe *thee)
Get membrane potential (kT)
Definition: vpbe.c:233
double smsize
Definition: vpbe.h:121
Vmem * vmem
Definition: vpbe.h:86
double solventRadius
Definition: vpbe.h:95
VEXTERNC unsigned long int Vpbe_memChk(Vpbe *thee)
Return the memory used by this structure (and its contents) in bytes.
Definition: vpbe.c:523
int param2Flag
Definition: vpbe.h:135
int paramFlag
Definition: vpbe.h:125
double smvolume
Definition: vpbe.h:120
Contains generic macro definitions for APBS.
double xkappa
Definition: vpbe.h:108
double soluteZlen
Definition: vpbe.h:117
double L
Definition: vpbe.h:132
double soluteXlen
Definition: vpbe.h:115
double solventDiel
Definition: vpbe.h:94
VEXTERNC void Vpbe_dtor(Vpbe **thee)
Object destructor.
Definition: vpbe.c:467
double soluteRadius
Definition: vpbe.h:114
Container class for list of atom objects.
Definition: valist.h:78
Valist * alist
Definition: vpbe.h:88
double soluteCenter[3]
Definition: vpbe.h:113
VEXTERNC void Vpbe_dtor2(Vpbe *thee)
FORTRAN stub object destructor.
Definition: vpbe.c:475
double soluteCharge
Definition: vpbe.h:118
#define MAXION
The maximum number of ion species that can be involved in a single PBE calculation.
Definition: vhal.h:377
Atom cell list.
Definition: vclist.h:117
double T
Definition: vpbe.h:92
VEXTERNC double Vpbe_getmembraneDiel(Vpbe *thee)
Get membrane dielectric constant.
Definition: vpbe.c:221
double deblen
Definition: vpbe.h:109
Contains declarations for class Vclist.
double maxIonRadius
Definition: vpbe.h:100