APBS 3.0.0
Loading...
Searching...
No Matches
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
84struct 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
114typedef 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
242VEXTERNC void Vatom_setResName(Vatom *thee, char resName[VMAX_RECLEN]);
243
248VEXTERNC void Vatom_setAtomName(
249 Vatom *thee, /**< Vatom object */
250 char atomName[VMAX_RECLEN]
251 );
252
259VEXTERNC void Vatom_getResName(Vatom *thee, char resName[VMAX_RECLEN]);
260
265VEXTERNC void Vatom_getAtomName(
266 Vatom *thee,
267 char atomName[VMAX_RECLEN]
268 );
269
275VEXTERNC Vatom* Vatom_ctor();
276
283VEXTERNC int Vatom_ctor2(Vatom *thee);
284
290VEXTERNC void Vatom_dtor(Vatom **thee);
291
297VEXTERNC void Vatom_dtor2(Vatom *thee);
298
305VEXTERNC void Vatom_setPosition(Vatom *thee, double position[3]);
306
314VEXTERNC void Vatom_copyTo(Vatom *thee, Vatom *dest);
315
323VEXTERNC void Vatom_copyFrom(Vatom *thee, Vatom *src);
324
325#if defined(WITH_TINKER)
326
333VEXTERNC void Vatom_setInducedDipole(Vatom *thee,
334 double inducedDipole[3]);
335
342VEXTERNC void Vatom_setNLInducedDipole(Vatom *thee,
343 double nlInducedDipole[3]);
344
351VEXTERNC void Vatom_setDipole(Vatom *thee, double dipole[3]);
352
359VEXTERNC void Vatom_setQuadrupole(Vatom *thee, double quadrupole[9]);
360
366VEXTERNC double* Vatom_getDipole(Vatom *thee);
367
373VEXTERNC double* Vatom_getQuadrupole(Vatom *thee);
374
380VEXTERNC double* Vatom_getInducedDipole(Vatom *thee);
381
387VEXTERNC double* Vatom_getNLInducedDipole(Vatom *thee);
388#endif /* if defined(WITH_TINKER) */
389
390#endif /* ifndef _VATOM_H_ */
VEXTERNC double Vatom_getAtomID(Vatom *thee)
Get atom ID.
Definition vatom.c:84
VEXTERNC void Vatom_setRadius(Vatom *thee, double radius)
Set atomic radius.
Definition vatom.c:98
VEXTERNC double Vatom_getPartID(Vatom *thee)
Get partition ID.
Definition vatom.c:70
VEXTERNC void Vatom_setPosition(Vatom *thee, double position[3])
Set the atomic position.
Definition vatom.c:168
VEXTERNC void Vatom_setEpsilon(Vatom *thee, double epsilon)
Set atomic epsilon.
Definition vatom.c:126
VEXTERNC void Vatom_getResName(Vatom *thee, char resName[VMAX_RECLEN])
Retrieve residue name.
Definition vatom.c:199
VEXTERNC void Vatom_setCharge(Vatom *thee, double charge)
Set atomic charge.
Definition vatom.c:112
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 int Vatom_ctor2(Vatom *thee)
FORTRAN stub constructor for the Vatom class.
Definition vatom.c:153
VEXTERNC void Vatom_dtor(Vatom **thee)
Object destructor.
Definition vatom.c:158
VEXTERNC double Vatom_getEpsilon(Vatom *thee)
Get atomic epsilon.
Definition vatom.c:132
VEXTERNC double Vatom_getRadius(Vatom *thee)
Get atomic position.
Definition vatom.c:105
VEXTERNC void Vatom_copyTo(Vatom *thee, Vatom *dest)
Copy information to another atom.
Definition vatom.c:177
VEXTERNC Vatom * Vatom_ctor()
Constructor for the Vatom class.
Definition vatom.c:142
VEXTERNC double * Vatom_getPosition(Vatom *thee)
Get atomic position.
Definition vatom.c:63
VEXTERNC void Vatom_getAtomName(Vatom *thee, char atomName[VMAX_RECLEN])
Retrieve atom name.
Definition vatom.c:214
#define VMAX_RECLEN
Residue name length.
Definition vatom.h:77
VEXTERNC double Vatom_getCharge(Vatom *thee)
Get atomic charge.
Definition vatom.c:119
VEXTERNC void Vatom_setPartID(Vatom *thee, int partID)
Set partition ID.
Definition vatom.c:77
VEXTERNC void Vatom_dtor2(Vatom *thee)
FORTRAN stub object destructor.
Definition vatom.c:166
VEXTERNC void Vatom_setAtomID(Vatom *thee, int id)
Set atom ID.
Definition vatom.c:91
VEXTERNC void Vatom_copyFrom(Vatom *thee, Vatom *src)
Copy information to another atom.
Definition vatom.c:186
Contains public data members for Vatom class/module.
Definition vatom.h:84
char resName[VMAX_RECLEN]
Definition vatom.h:97
double radius
Definition vatom.h:87
double epsilon
Definition vatom.h:91
int id
Definition vatom.h:93
double position[3]
Definition vatom.h:86
double charge
Definition vatom.h:88
double partID
Definition vatom.h:89
char atomName[VMAX_RECLEN]
Definition vatom.h:98
Contains generic macro definitions for APBS.