00001
00060 #ifndef _VATOM_H_
00061 #define _VATOM_H_
00062
00063 #include "maloc/maloc.h"
00064 #include "apbs/vhal.h"
00065
00066 #define VMAX_RECLEN 64
00067
00073 struct sVatom {
00074
00075 double position[3];
00076 double radius;
00077 double charge;
00078 double partID;
00080 double epsilon;
00082 int id;
00086 char resName[VMAX_RECLEN];
00087 char atomName[VMAX_RECLEN];
00089 #if defined(WITH_TINKER)
00090
00091 double dipole[3];
00092 double quadrupole[9];
00093 double inducedDipole[3];
00094 double nlInducedDipole[3];
00096 #endif
00097 };
00098
00103 typedef struct sVatom Vatom;
00104
00105 #if !defined(VINLINE_VATOM)
00106
00113 double* Vatom_getPosition(Vatom *thee);
00114
00121 void Vatom_setRadius(Vatom *thee, double radius);
00122
00129 double Vatom_getRadius(Vatom *thee);
00130
00138 void Vatom_setPartID(Vatom *thee, int partID);
00139
00147 double Vatom_getPartID(Vatom *thee);
00148
00155 void Vatom_setAtomID(Vatom *thee, int id);
00156
00163 double Vatom_getAtomID(Vatom *thee);
00164
00171 void Vatom_setCharge(Vatom *thee, double charge);
00172
00179 double Vatom_getCharge(Vatom *thee);
00180
00187 void Vatom_setEpsilon(Vatom *thee, double epsilon);
00188
00195 double Vatom_getEpsilon(Vatom *thee);
00196
00204 unsigned long int Vatom_memChk(Vatom *thee);
00205
00206 #else
00207 # define Vatom_getPosition(thee) ((thee)->position)
00208 # define Vatom_setRadius(thee, tRadius) ((thee)->radius = (tRadius))
00209 # define Vatom_getRadius(thee) ((thee)->radius)
00210 # define Vatom_setPartID(thee, tpartID) ((thee)->partID = (double)(tpartID))
00211 # define Vatom_getPartID(thee) ((thee)->partID)
00212 # define Vatom_setAtomID(thee, tatomID) ((thee)->id = (tatomID))
00213 # define Vatom_getAtomID(thee) ((thee)->id)
00214 # define Vatom_setCharge(thee, tCharge) ((thee)->charge = (tCharge))
00215 # define Vatom_getCharge(thee) ((thee)->charge)
00216 # define Vatom_setEpsilon(thee, tEpsilon) ((thee)->epsilon = (tEpsilon))
00217 # define Vatom_getEpsilon(thee) ((thee)->epsilon)
00218 # define Vatom_memChk(thee) (sizeof(Vatom))
00219 #endif
00220
00221
00222
00224
00231
00232
00237
00238
00239
00240
00241
00248
00249
00254
00255
00256
00257
00258
00264
00265
00272
00273
00279
00280
00286
00287
00294
00295
00303
00304
00312
00313
00314
00315
00322
00323
00324
00331
00332
00333
00340
00341
00348
00349
00355
00356
00362
00363
00369
00370
00376
00377
00378
00379 #endif
00380