APBS  1.5
vatom.h
Go to the documentation of this file.
1 
62 #ifndef _VATOM_H_
63 #define _VATOM_H_
64 
65 #include "apbscfg.h"
66 
67 #include "maloc/maloc.h"
68 
69 #include "generic/vhal.h"
70 
77 #define VMAX_RECLEN 64
78 
84 struct sVatom {
85 
86  double position[3];
87  double radius;
88  double charge;
89  double partID;
91  double epsilon;
93  int id;
100 #if defined(WITH_TINKER)
101 
102  double dipole[3];
103  double quadrupole[9];
104  double inducedDipole[3];
105  double nlInducedDipole[3];
107 #endif /* if defined(WITH_TINKER) */
108 };
109 
114 typedef struct sVatom Vatom;
115 
116 #if !defined(VINLINE_VATOM)
117 
124  VEXTERNC double* Vatom_getPosition(Vatom *thee);
125 
132  VEXTERNC void Vatom_setRadius(Vatom *thee, double radius);
133 
140  VEXTERNC double Vatom_getRadius(Vatom *thee);
141 
149  VEXTERNC void Vatom_setPartID(Vatom *thee, int partID);
150 
158  VEXTERNC double Vatom_getPartID(Vatom *thee);
159 
166  VEXTERNC void Vatom_setAtomID(Vatom *thee, int id);
167 
174  VEXTERNC double Vatom_getAtomID(Vatom *thee);
175 
182  VEXTERNC void Vatom_setCharge(Vatom *thee, double charge);
183 
190  VEXTERNC double Vatom_getCharge(Vatom *thee);
191 
198  VEXTERNC void Vatom_setEpsilon(Vatom *thee, double epsilon);
199 
206  VEXTERNC double Vatom_getEpsilon(Vatom *thee);
207 
215  VEXTERNC unsigned long int Vatom_memChk(Vatom *thee);
216 
217 #else /* if defined(VINLINE_VATOM) */
218 # define Vatom_getPosition(thee) ((thee)->position)
219 # define Vatom_setRadius(thee, tRadius) ((thee)->radius = (tRadius))
220 # define Vatom_getRadius(thee) ((thee)->radius)
221 # define Vatom_setPartID(thee, tpartID) ((thee)->partID = (double)(tpartID))
222 # define Vatom_getPartID(thee) ((thee)->partID)
223 # define Vatom_setAtomID(thee, tatomID) ((thee)->id = (tatomID))
224 # define Vatom_getAtomID(thee) ((thee)->id)
225 # define Vatom_setCharge(thee, tCharge) ((thee)->charge = (tCharge))
226 # define Vatom_getCharge(thee) ((thee)->charge)
227 # define Vatom_setEpsilon(thee, tEpsilon) ((thee)->epsilon = (tEpsilon))
228 # define Vatom_getEpsilon(thee) ((thee)->epsilon)
229 # define Vatom_memChk(thee) (sizeof(Vatom))
230 #endif /* if !defined(VINLINE_VATOM) */
231 
232 /* ///////////////////////////////////////////////////////////////////////////
233 // Class Vatom: Non-Inlineable methods (vatom.c)
235 
242 VEXTERNC void Vatom_setResName(Vatom *thee, char resName[VMAX_RECLEN]);
243 
248 VEXTERNC void Vatom_setAtomName(
249  Vatom *thee, /**< Vatom object */
250  char atomName[VMAX_RECLEN]
251  );
252 
259 VEXTERNC void Vatom_getResName(Vatom *thee, char resName[VMAX_RECLEN]);
260 
265 VEXTERNC void Vatom_getAtomName(
266  Vatom *thee,
267  char atomName[VMAX_RECLEN]
268  );
269 
275 VEXTERNC Vatom* Vatom_ctor();
276 
283 VEXTERNC int Vatom_ctor2(Vatom *thee);
284 
290 VEXTERNC void Vatom_dtor(Vatom **thee);
291 
297 VEXTERNC void Vatom_dtor2(Vatom *thee);
298 
305 VEXTERNC void Vatom_setPosition(Vatom *thee, double position[3]);
306 
314 VEXTERNC void Vatom_copyTo(Vatom *thee, Vatom *dest);
315 
323 VEXTERNC void Vatom_copyFrom(Vatom *thee, Vatom *src);
324 
325 #if defined(WITH_TINKER)
326 
333 VEXTERNC void Vatom_setInducedDipole(Vatom *thee,
334  double inducedDipole[3]);
335 
342 VEXTERNC void Vatom_setNLInducedDipole(Vatom *thee,
343  double nlInducedDipole[3]);
344 
351 VEXTERNC void Vatom_setDipole(Vatom *thee, double dipole[3]);
352 
359 VEXTERNC void Vatom_setQuadrupole(Vatom *thee, double quadrupole[9]);
360 
366 VEXTERNC double* Vatom_getDipole(Vatom *thee);
367 
373 VEXTERNC double* Vatom_getQuadrupole(Vatom *thee);
374 
380 VEXTERNC double* Vatom_getInducedDipole(Vatom *thee);
381 
387 VEXTERNC double* Vatom_getNLInducedDipole(Vatom *thee);
388 #endif /* if defined(WITH_TINKER) */
389 
390 #endif /* ifndef _VATOM_H_ */
double position[3]
Definition: vatom.h:86
VEXTERNC double Vatom_getEpsilon(Vatom *thee)
Get atomic epsilon.
Definition: vatom.c:132
VEXTERNC void Vatom_setEpsilon(Vatom *thee, double epsilon)
Set atomic epsilon.
Definition: vatom.c:126
VEXTERNC void Vatom_setAtomID(Vatom *thee, int id)
Set atom ID.
Definition: vatom.c:91
VEXTERNC void Vatom_getAtomName(Vatom *thee, char atomName[VMAX_RECLEN])
Retrieve atom name.
Definition: vatom.c:214
VEXTERNC unsigned long int Vatom_memChk(Vatom *thee)
Return the memory used by this structure (and its contents) in bytes.
Definition: vatom.c:138
VEXTERNC void Vatom_getResName(Vatom *thee, char resName[VMAX_RECLEN])
Retrieve residue name.
Definition: vatom.c:199
VEXTERNC double Vatom_getPartID(Vatom *thee)
Get partition ID.
Definition: vatom.c:70
VEXTERNC void Vatom_setPartID(Vatom *thee, int partID)
Set partition ID.
Definition: vatom.c:77
VEXTERNC void Vatom_setPosition(Vatom *thee, double position[3])
Set the atomic position.
Definition: vatom.c:168
VEXTERNC void Vatom_copyFrom(Vatom *thee, Vatom *src)
Copy information to another atom.
Definition: vatom.c:186
double radius
Definition: vatom.h:87
VEXTERNC void Vatom_copyTo(Vatom *thee, Vatom *dest)
Copy information to another atom.
Definition: vatom.c:177
char resName[VMAX_RECLEN]
Definition: vatom.h:97
VEXTERNC double Vatom_getAtomID(Vatom *thee)
Get atom ID.
Definition: vatom.c:84
VEXTERNC int Vatom_ctor2(Vatom *thee)
FORTRAN stub constructor for the Vatom class.
Definition: vatom.c:153
double epsilon
Definition: vatom.h:91
double partID
Definition: vatom.h:89
VEXTERNC void Vatom_setRadius(Vatom *thee, double radius)
Set atomic radius.
Definition: vatom.c:98
VEXTERNC void Vatom_dtor(Vatom **thee)
Object destructor.
Definition: vatom.c:158
Contains generic macro definitions for APBS.
char atomName[VMAX_RECLEN]
Definition: vatom.h:98
VEXTERNC double * Vatom_getPosition(Vatom *thee)
Get atomic position.
Definition: vatom.c:63
Contains public data members for Vatom class/module.
Definition: vatom.h:84
VEXTERNC Vatom * Vatom_ctor()
Constructor for the Vatom class.
Definition: vatom.c:142
double charge
Definition: vatom.h:88
#define VMAX_RECLEN
Residue name length.
Definition: vatom.h:77
VEXTERNC void Vatom_dtor2(Vatom *thee)
FORTRAN stub object destructor.
Definition: vatom.c:166
VEXTERNC double Vatom_getRadius(Vatom *thee)
Get atomic position.
Definition: vatom.c:105
int id
Definition: vatom.h:93
VEXTERNC void Vatom_setCharge(Vatom *thee, double charge)
Set atomic charge.
Definition: vatom.c:112
VEXTERNC double Vatom_getCharge(Vatom *thee)
Get atomic charge.
Definition: vatom.c:119