APBS  1.4.1
vclist.h
Go to the documentation of this file.
1 
62 #ifndef _VCLIST_H_
63 #define _VCLIST_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/vatom.h"
75 #include "generic/vunit.h"
76 
87 };
88 
95 
101 struct sVclistCell {
103  int natoms;
104 };
105 
110 typedef struct sVclistCell VclistCell;
111 
117 struct sVclist {
118 
119  Vmem *vmem;
122  int npts[VAPBS_DIM];
123  int n;
124  double max_radius;
126  double lower_corner[VAPBS_DIM];
127  double upper_corner[VAPBS_DIM];
128  double spacs[VAPBS_DIM];
130 };
131 
136 typedef struct sVclist Vclist;
137 
138 #if !defined(VINLINE_VCLIST)
139 
145  VEXTERNC unsigned long int Vclist_memChk(
146  Vclist *thee
147  );
148 
156  VEXTERNC double Vclist_maxRadius(
157  Vclist *thee
158  );
159 
160 #else /* if defined(VINLINE_VCLIST) */
161 
162 # define Vclist_memChk(thee) (Vmem_bytes((thee)->vmem))
163 # define Vclist_maxRadius(thee) ((thee)->max_radius)
164 
165 #endif /* if !defined(VINLINE_VCLIST) */
166 
167 /* ///////////////////////////////////////////////////////////////////////////
168 // Class Vclist: Non-Inlineable methods (vclist.c)
170 
175 VEXTERNC Vclist* Vclist_ctor(
176  Valist *alist,
177  double max_radius,
178  int npts[VAPBS_DIM],
180  Vclist_DomainMode mode,
181  double lower_corner[VAPBS_DIM],
184  double upper_corner[VAPBS_DIM]
187  );
188 
193 VEXTERNC Vrc_Codes Vclist_ctor2(
194  Vclist *thee,
195  Valist *alist,
196  double max_radius,
197  int npts[VAPBS_DIM],
199  Vclist_DomainMode mode,
200  double lower_corner[VAPBS_DIM],
203  double upper_corner[VAPBS_DIM]
206  );
207 
212 VEXTERNC void Vclist_dtor(
213  Vclist **thee
214  );
215 
220 VEXTERNC void Vclist_dtor2(
221  Vclist *thee
222  );
223 
231 VEXTERNC VclistCell* Vclist_getCell(
232  Vclist *thee,
233  double position[VAPBS_DIM]
234  );
235 
242 VEXTERNC VclistCell* VclistCell_ctor(
243  int natoms
244  );
245 
252 VEXTERNC Vrc_Codes VclistCell_ctor2(
253  VclistCell *thee,
254  int natoms
255  );
256 
261 VEXTERNC void VclistCell_dtor(
262  VclistCell **thee
263  );
264 
269 VEXTERNC void VclistCell_dtor2(
270  VclistCell *thee
271  );
272 
273 #endif /* ifndef _VCLIST_H_ */
Contains declarations for class Valist.
VEXTERNC unsigned long int Vclist_memChk(Vclist *thee)
Get number of bytes in this object and its members.
Definition: vclist.c:63
VEXTERNC double Vclist_maxRadius(Vclist *thee)
Get the max probe radius value (in A) the cell list was constructed with.
Definition: vclist.c:68
Vclist_DomainMode mode
Definition: vclist.h:121
double max_radius
Definition: vclist.h:124
VclistCell * cells
Definition: vclist.h:125
enum eVclist_DomainMode Vclist_DomainMode
Declaration of Vclist_DomainMode enumeration type.
Definition: vclist.h:94
int n
Definition: vclist.h:123
int natoms
Definition: vclist.h:103
Contains a collection of useful constants and conversion factors.
Contains declarations for class Vatom.
Atom cell list cell.
Definition: vclist.h:101
Valist * alist
Definition: vclist.h:120
Contains generic macro definitions for APBS.
#define VAPBS_DIM
Our dimension.
Definition: vhal.h:403
Vatom ** atoms
Definition: vclist.h:102
Vmem * vmem
Definition: vclist.h:119
Contains public data members for Vatom class/module.
Definition: vatom.h:84
Container class for list of atom objects.
Definition: valist.h:78
Atom cell list.
Definition: vclist.h:117
eVclist_DomainMode
Atom cell list domain setup mode.
Definition: vclist.h:82