APBS 3.0.0
Loading...
Searching...
No Matches
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
84struct sVpbe {
85
86 Vmem *vmem;
92 double T;
93 double soluteDiel;
94 double solventDiel;
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];
115 double soluteXlen;
116 double soluteYlen;
117 double soluteZlen;
120 double smvolume;
121 double smsize;
122 int ipkey;
127 /*-------------------------------------------------------*/
128 /* Added by Michael Grabe */
129 /*-------------------------------------------------------*/
130
131 double z_mem;
132 double L;
134 double V;
136 /*-------------------------------------------------------*/
137
138};
139
144typedef struct sVpbe Vpbe;
145
146/* ///////////////////////////////////////////////////////////////////////////
147 // Class Vpbe: Inlineable methods (vpbe.c)
149
150#if !defined(VINLINE_VPBE)
151
158VEXTERNC Valist* Vpbe_getValist(Vpbe *thee);
159
166VEXTERNC Vacc* Vpbe_getVacc(Vpbe *thee);
167
174VEXTERNC double Vpbe_getBulkIonicStrength(Vpbe *thee);
175
182VEXTERNC double Vpbe_getMaxIonRadius(Vpbe *thee);
183
190VEXTERNC double Vpbe_getTemperature(Vpbe *thee);
191
198VEXTERNC double Vpbe_getSoluteDiel(Vpbe *thee);
199
206VEXTERNC double Vpbe_getGamma(Vpbe *thee);
207
214VEXTERNC double Vpbe_getSoluteRadius(Vpbe *thee);
215
222VEXTERNC double Vpbe_getSoluteXlen(Vpbe *thee);
223
230VEXTERNC double Vpbe_getSoluteYlen(Vpbe *thee);
231
238VEXTERNC double Vpbe_getSoluteZlen(Vpbe *thee);
239
246VEXTERNC double* Vpbe_getSoluteCenter(Vpbe *thee);
247
254VEXTERNC double Vpbe_getSoluteCharge(Vpbe *thee);
255
262VEXTERNC double Vpbe_getSolventDiel(Vpbe *thee);
263
270VEXTERNC double Vpbe_getSolventRadius(Vpbe *thee);
271
278VEXTERNC double Vpbe_getXkappa(Vpbe *thee);
279
286VEXTERNC double Vpbe_getDeblen(Vpbe *thee);
287
294VEXTERNC double Vpbe_getZkappa2(Vpbe *thee);
295
302VEXTERNC double Vpbe_getZmagic(Vpbe *thee);
303
304/*--------------------------------------------------------------*/
305/* Added by Michael Grabe */
306/*--------------------------------------------------------------*/
307
314VEXTERNC double Vpbe_getzmem(Vpbe *thee);
315
322VEXTERNC double Vpbe_getLmem(Vpbe *thee);
323
330VEXTERNC double Vpbe_getmembraneDiel(Vpbe *thee);
331
337VEXTERNC 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
399VEXTERNC 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
437VEXTERNC 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
466VEXTERNC int Vpbe_getIons(Vpbe *thee, int *nion, double ionConc[MAXION],
467 double ionRadii[MAXION], double ionQ[MAXION]);
468
474VEXTERNC void Vpbe_dtor(Vpbe **thee);
475
481VEXTERNC void Vpbe_dtor2(Vpbe *thee);
482
497VEXTERNC double Vpbe_getCoulombEnergy1(Vpbe *thee);
498
506VEXTERNC unsigned long int Vpbe_memChk(Vpbe *thee);
507
508#endif /* ifndef _VPBE_H_ */
#define MAXION
The maximum number of ion species that can be involved in a single PBE calculation.
Definition vhal.h:377
VEXTERNC void Vpbe_dtor2(Vpbe *thee)
FORTRAN stub object destructor.
Definition vpbe.c:475
VEXTERNC double Vpbe_getCoulombEnergy1(Vpbe *thee)
Calculate coulombic energy of set of charges.
Definition vpbe.c:481
VEXTERNC double Vpbe_getmemv(Vpbe *thee)
Get membrane potential (kT)
Definition vpbe.c:233
VEXTERNC void Vpbe_dtor(Vpbe **thee)
Object destructor.
Definition vpbe.c:467
VEXTERNC double Vpbe_getzmem(Vpbe *thee)
Get z position of the membrane bottom.
Definition vpbe.c:197
VEXTERNC unsigned long int Vpbe_memChk(Vpbe *thee)
Return the memory used by this structure (and its contents) in bytes.
Definition vpbe.c:523
VEXTERNC double Vpbe_getmembraneDiel(Vpbe *thee)
Get membrane dielectric constant.
Definition vpbe.c:221
VEXTERNC double Vpbe_getLmem(Vpbe *thee)
Get length of the membrane (A)aauthor Michael Grabe.
Definition vpbe.c:209
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
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
Oracle for solvent- and ion-accessibility around a biomolecule.
Definition vacc.h:108
Container class for list of atom objects.
Definition valist.h:78
Atom cell list.
Definition vclist.h:117
Contains public data members for Vpbe class/module.
Definition vpbe.h:84
double smsize
Definition vpbe.h:121
double soluteYlen
Definition vpbe.h:116
double V
Definition vpbe.h:134
double bulkIonicStrength
Definition vpbe.h:99
double L
Definition vpbe.h:132
int paramFlag
Definition vpbe.h:125
int ipkey
Definition vpbe.h:122
double ionRadii[MAXION]
Definition vpbe.h:105
double soluteCharge
Definition vpbe.h:118
double xkappa
Definition vpbe.h:108
double deblen
Definition vpbe.h:109
Vacc * acc
Definition vpbe.h:90
double z_mem
Definition vpbe.h:131
double solventDiel
Definition vpbe.h:94
int numIon
Definition vpbe.h:103
double membraneDiel
Definition vpbe.h:133
Vclist * clist
Definition vpbe.h:89
double zkappa2
Definition vpbe.h:110
double soluteZlen
Definition vpbe.h:117
double soluteCenter[3]
Definition vpbe.h:113
double soluteRadius
Definition vpbe.h:114
double soluteDiel
Definition vpbe.h:93
double soluteXlen
Definition vpbe.h:115
double T
Definition vpbe.h:92
int param2Flag
Definition vpbe.h:135
double maxIonRadius
Definition vpbe.h:100
double solventRadius
Definition vpbe.h:95
Vmem * vmem
Definition vpbe.h:86
Valist * alist
Definition vpbe.h:88
double ionConc[MAXION]
Definition vpbe.h:104
double smvolume
Definition vpbe.h:120
double zmagic
Definition vpbe.h:111
double ionQ[MAXION]
Definition vpbe.h:106
Contains declarations for class Vacc.
Contains declarations for class Vatom.
Contains declarations for class Vclist.
Contains generic macro definitions for APBS.
Contains a collection of useful constants and conversion factors.