APBS 3.0.0
Loading...
Searching...
No Matches
vacc.h
Go to the documentation of this file.
1
62#ifndef _VACC_H_
63#define _VACC_H_
64
65#include "apbscfg.h"
66
67#include "maloc/maloc.h"
68#if defined(HAVE_MC_H)
69#include "mc/mc.h"
70#endif
71
72#include "generic/vhal.h"
73#include "generic/valist.h"
74#include "generic/vclist.h"
75#include "generic/vatom.h"
76#include "generic/vunit.h"
77#include "generic/apolparm.h"
78
84struct sVaccSurf {
85 Vmem *mem;
86 double *xpts;
87 double *ypts;
88 double *zpts;
89 char *bpts;
91 double area;
92 int npts;
93 double probe_radius;
95};
96
101typedef struct sVaccSurf VaccSurf;
102
126
131typedef struct sVacc Vacc;
132
133#if !defined(VINLINE_VACC)
134
140 VEXTERNC unsigned long int Vacc_memChk(
141 Vacc *thee
142 );
143
144#else /* if defined(VINLINE_VACC) */
145
146# define Vacc_memChk(thee) (Vmem_bytes((thee)->mem))
147
148#endif /* if !defined(VINLINE_VACC) */
149
157VEXTERNC VaccSurf* VaccSurf_ctor(
158 Vmem *mem,
159 double probe_radius,
160 int nsphere
161 );
162
170VEXTERNC int VaccSurf_ctor2(
171 VaccSurf *thee,
172 Vmem *mem,
173 double probe_radius,
174 int nsphere
175 );
176
182VEXTERNC void VaccSurf_dtor(
183 VaccSurf **thee
184 );
185
191VEXTERNC void VaccSurf_dtor2(
192 VaccSurf *thee
193 );
194
210 Vmem *mem,
211 int npts
212 );
213
221VEXTERNC VaccSurf* Vacc_atomSurf(
222 Vacc *thee,
223 Vatom *atom,
224 VaccSurf *ref,
226 double probe_radius
227 );
228
233VEXTERNC Vacc* Vacc_ctor(
234 Valist *alist,
235 Vclist *clist,
237 double surf_density
239 );
240
245VEXTERNC int Vacc_ctor2(
246 Vacc *thee,
247 Valist *alist,
248 Vclist *clist,
250 double surf_density
252 );
253
258VEXTERNC void Vacc_dtor(
259 Vacc **thee
260 );
261
266VEXTERNC void Vacc_dtor2(
267 Vacc *thee
268 );
269
280VEXTERNC double Vacc_vdwAcc(
281 Vacc *thee,
282 double center[VAPBS_DIM]
283 );
284
296VEXTERNC double Vacc_ivdwAcc(
297 Vacc *thee,
298 double center[VAPBS_DIM],
299 double radius
300 );
301
316VEXTERNC double Vacc_molAcc(
317 Vacc *thee,
318 double center[VAPBS_DIM],
319 double radius
320 );
321
340VEXTERNC double Vacc_fastMolAcc(
341 Vacc *thee,
342 double center[VAPBS_DIM],
343 double radius
344 );
345
357VEXTERNC double Vacc_splineAcc(
358 Vacc *thee,
359 double center[VAPBS_DIM],
360 double win,
361 double infrad
362 );
363
369VEXTERNC void Vacc_splineAccGrad(
370 Vacc *thee,
371 double center[VAPBS_DIM],
372 double win,
373 double infrad,
374 double *grad
375 );
376
388VEXTERNC double Vacc_splineAccAtom(
389 Vacc *thee,
390 double center[VAPBS_DIM],
391 double win,
392 double infrad,
393 Vatom *atom
394 );
395
406VEXTERNC void Vacc_splineAccGradAtomUnnorm(
407 Vacc *thee,
408 double center[VAPBS_DIM],
409 double win,
410 double infrad,
411 Vatom *atom,
412 double *force
413 );
414
426VEXTERNC void Vacc_splineAccGradAtomNorm(
427 Vacc *thee,
428 double center[VAPBS_DIM],
429 double win,
430 double infrad,
431 Vatom *atom,
432 double *force
433 );
434
442VEXTERNC void Vacc_splineAccGradAtomNorm4(
443 Vacc *thee,
444 double center[VAPBS_DIM],
445 double win,
446 double infrad,
447 Vatom *atom,
448 double *force
449 );
450
458VEXTERNC void Vacc_splineAccGradAtomNorm3(
459 Vacc *thee,
460 double center[VAPBS_DIM],
461 double win,
462 double infrad,
463 Vatom *atom,
464 double *force
465 );
466
467
477VEXTERNC double Vacc_SASA(
478 Vacc *thee,
479 double radius
480 );
481
489VEXTERNC double Vacc_totalSASA(
490 Vacc *thee,
491 double radius
492 );
493
501VEXTERNC double Vacc_atomSASA(
502 Vacc *thee,
503 double radius,
504 Vatom *atom
505 );
506
514 Vacc *thee,
515 double radius,
516 Vatom *atom
517 );
518
524VEXTERNC void Vacc_atomdSAV(
525 Vacc *thee,
526 double radius,
527 Vatom *atom,
528 double *dSA
529 );
530
536VEXTERNC void Vacc_atomdSASA(
537 Vacc *thee,
538 double dpos,
539 double radius,
540 Vatom *atom,
541 double *dSA
542 );
543
549VEXTERNC void Vacc_totalAtomdSASA(
550 Vacc *thee,
551 double dpos,
552 double radius,
553 Vatom *atom,
554 double *dSA
555 );
556
562VEXTERNC void Vacc_totalAtomdSAV(
563 Vacc *thee,
564 double dpos,
565 double radius,
566 Vatom *atom,
567 double *dSA,
568 Vclist *clist
569 );
570
578VEXTERNC double Vacc_totalSAV(
579 Vacc *thee,
580 Vclist *clist,
581 APOLparm *apolparm,
583 double radius
584 );
585
592VEXTERNC int Vacc_wcaEnergy(
593 Vacc *thee,
594 APOLparm *apolparm,
595 Valist *alist,
596 Vclist *clist
597 );
604VEXTERNC int Vacc_wcaForceAtom(Vacc *thee,
605 APOLparm *apolparm,
606 Vclist *clist,
607 Vatom *atom,
608 double *force
609 );
610
616VEXTERNC int Vacc_wcaEnergyAtom(
617 Vacc *thee,
618 APOLparm *apolparm,
619 Valist *alist,
620 Vclist *clist,
621 int iatom,
622 double *value
623 );
624
625#endif /* ifndef _VACC_H_ */
VEXTERNC int Vacc_wcaEnergy(Vacc *thee, APOLparm *apolparm, Valist *alist, Vclist *clist)
Return the WCA integral energy.
Definition vacc.c:1721
VEXTERNC void Vacc_splineAccGradAtomNorm(Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom, double *force)
Report gradient of spline-based accessibility with respect to a particular atom normalized by the acc...
Definition vacc.c:316
VEXTERNC int Vacc_ctor2(Vacc *thee, Valist *alist, Vclist *clist, double surf_density)
FORTRAN stub to construct the accessibility object.
Definition vacc.c:213
VEXTERNC double Vacc_ivdwAcc(Vacc *thee, double center[VAPBS_DIM], double radius)
Report inflated van der Waals accessibility.
VEXTERNC int Vacc_wcaEnergyAtom(Vacc *thee, APOLparm *apolparm, Valist *alist, Vclist *clist, int iatom, double *value)
Calculate the WCA energy for an atom.
Definition vacc.c:1580
VEXTERNC void Vacc_splineAccGradAtomUnnorm(Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom, double *force)
Report gradient of spline-based accessibility with respect to a particular atom (see Vpmg_splineAccAt...
Definition vacc.c:377
VEXTERNC unsigned long int Vacc_memChk(Vacc *thee)
Get number of bytes in this object and its members.
Definition vacc.c:63
VEXTERNC void VaccSurf_dtor2(VaccSurf *thee)
Destroy the surface object.
Definition vacc.c:853
VEXTERNC void Vacc_totalAtomdSAV(Vacc *thee, double dpos, double radius, Vatom *atom, double *dSA, Vclist *clist)
Total solvent accessible volume.
Definition vacc.c:1448
VEXTERNC double Vacc_molAcc(Vacc *thee, double center[VAPBS_DIM], double radius)
Report molecular accessibility.
Definition vacc.c:608
VEXTERNC double Vacc_vdwAcc(Vacc *thee, double center[VAPBS_DIM])
Report van der Waals accessibility.
VEXTERNC void Vacc_splineAccGradAtomNorm3(Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom, double *force)
Report gradient of spline-based accessibility with respect to a particular atom normalized by a 3rd o...
Definition vacc.c:1099
VEXTERNC void VaccSurf_dtor(VaccSurf **thee)
Destroy the surface object and free its memory.
Definition vacc.c:839
VEXTERNC void Vacc_totalAtomdSASA(Vacc *thee, double dpos, double radius, Vatom *atom, double *dSA)
Testing purposes only.
Definition vacc.c:1389
VEXTERNC void Vacc_splineAccGrad(Vacc *thee, double center[VAPBS_DIM], double win, double infrad, double *grad)
Report gradient of spline-based accessibility.
Definition vacc.c:561
VEXTERNC void Vacc_dtor(Vacc **thee)
Destroy object.
Definition vacc.c:245
VEXTERNC VaccSurf * VaccSurf_ctor(Vmem *mem, double probe_radius, int nsphere)
Allocate and construct the surface object; do not assign surface points to positions.
Definition vacc.c:803
VEXTERNC double Vacc_splineAcc(Vacc *thee, double center[VAPBS_DIM], double win, double infrad)
Report spline-based accessibility.
Definition vacc.c:528
VEXTERNC double Vacc_totalSASA(Vacc *thee, double radius)
Return the total solvent accessible surface area (SASA)
Definition vacc.c:774
VEXTERNC void Vacc_atomdSAV(Vacc *thee, double radius, Vatom *atom, double *dSA)
Get the derivatve of solvent accessible volume.
Definition vacc.c:1200
VEXTERNC double Vacc_atomSASA(Vacc *thee, double radius, Vatom *atom)
Return the atomic solvent accessible surface area (SASA)
Definition vacc.c:780
VEXTERNC VaccSurf * VaccSurf_refSphere(Vmem *mem, int npts)
Set up an array of points for a reference sphere of unit radius.
Definition vacc.c:926
VEXTERNC double Vacc_fastMolAcc(Vacc *thee, double center[VAPBS_DIM], double radius)
Report molecular accessibility quickly.
Definition vacc.c:637
VEXTERNC double Vacc_SASA(Vacc *thee, double radius)
Build the solvent accessible surface (SAS) and calculate the solvent accessible surface area.
Definition vacc.c:713
VEXTERNC int VaccSurf_ctor2(VaccSurf *thee, Vmem *mem, double probe_radius, int nsphere)
Construct the surface object using previously allocated memory; do not assign surface points to posit...
Definition vacc.c:813
VEXTERNC void Vacc_splineAccGradAtomNorm4(Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom, double *force)
Report gradient of spline-based accessibility with respect to a particular atom normalized by a 4th o...
Definition vacc.c:1006
VEXTERNC void Vacc_atomdSASA(Vacc *thee, double dpos, double radius, Vatom *atom, double *dSA)
Get the derivatve of solvent accessible area.
Definition vacc.c:1320
VEXTERNC VaccSurf * Vacc_atomSurf(Vacc *thee, Vatom *atom, VaccSurf *ref, double probe_radius)
Set up an array of points corresponding to the SAS due to a particular atom.
Definition vacc.c:868
VEXTERNC int Vacc_wcaForceAtom(Vacc *thee, APOLparm *apolparm, Vclist *clist, Vatom *atom, double *force)
Return the WCA integral force.
Definition vacc.c:1756
VEXTERNC VaccSurf * Vacc_atomSASPoints(Vacc *thee, double radius, Vatom *atom)
Get the set of points for this atom's solvent-accessible surface.
Definition vacc.c:982
VEXTERNC double Vacc_totalSAV(Vacc *thee, Vclist *clist, APOLparm *apolparm, double radius)
Return the total solvent accessible volume (SAV)
Definition vacc.c:1503
VEXTERNC Vacc * Vacc_ctor(Valist *alist, Vclist *clist, double surf_density)
Construct the accessibility object.
Definition vacc.c:132
VEXTERNC void Vacc_dtor2(Vacc *thee)
FORTRAN stub to destroy object.
Definition vacc.c:255
VEXTERNC double Vacc_splineAccAtom(Vacc *thee, double center[VAPBS_DIM], double win, double infrad, Vatom *atom)
Report spline-based accessibility for a given atom.
Definition vacc.c:438
#define VAPBS_DIM
Our dimension.
Definition vhal.h:402
Parameter structure for APOL-specific variables from input files.
Definition apolparm.h:129
Oracle for solvent- and ion-accessibility around a biomolecule.
Definition vacc.h:108
Vmem * mem
Definition vacc.h:110
int * atomFlags
Definition vacc.h:113
double surf_density
Definition vacc.h:122
Vset acc
Definition vacc.h:120
Vclist * clist
Definition vacc.h:112
Valist * alist
Definition vacc.h:111
VaccSurf * refSphere
Definition vacc.h:116
VaccSurf ** surf
Definition vacc.h:117
Surface object list of per-atom surface points.
Definition vacc.h:84
int npts
Definition vacc.h:92
Vmem * mem
Definition vacc.h:85
double * zpts
Definition vacc.h:88
double * ypts
Definition vacc.h:87
double probe_radius
Definition vacc.h:93
double * xpts
Definition vacc.h:86
double area
Definition vacc.h:91
char * bpts
Definition vacc.h:89
Container class for list of atom objects.
Definition valist.h:78
Contains public data members for Vatom class/module.
Definition vatom.h:84
Atom cell list.
Definition vclist.h:117
Contains declarations for class Valist.
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.