00001
00072 #ifndef _VATOM_H_
00073 #define _VATOM_H_
00074
00075 #include "maloc/maloc.h"
00076 #include "apbs/vhal.h"
00077
00078 #define VMAX_RECLEN 64
00079
00085 struct sVatom {
00086
00087 double position[3];
00088 double radius;
00089 double charge;
00090 double partID;
00092 double epsilon;
00094 int id;
00098 char resName[VMAX_RECLEN];
00099 char atomName[VMAX_RECLEN];
00101 #if defined(WITH_TINKER)
00102
00103 double dipole[3];
00104 double quadrupole[9];
00105 double inducedDipole[3];
00106 double nlInducedDipole[3];
00108 #endif
00109 };
00110
00115 typedef struct sVatom Vatom;
00116
00117 #if !defined(VINLINE_VATOM)
00118
00125 double* Vatom_getPosition(Vatom *thee);
00126
00133 void Vatom_setRadius(Vatom *thee, double radius);
00134
00141 double Vatom_getRadius(Vatom *thee);
00142
00150 void Vatom_setPartID(Vatom *thee, int partID);
00151
00159 double Vatom_getPartID(Vatom *thee);
00160
00167 void Vatom_setAtomID(Vatom *thee, int id);
00168
00175 double Vatom_getAtomID(Vatom *thee);
00176
00183 void Vatom_setCharge(Vatom *thee, double charge);
00184
00191 double Vatom_getCharge(Vatom *thee);
00192
00199 void Vatom_setEpsilon(Vatom *thee, double epsilon);
00200
00207 double Vatom_getEpsilon(Vatom *thee);
00208
00216 unsigned long int Vatom_memChk(Vatom *thee);
00217
00218 #else
00219 # define Vatom_getPosition(thee) ((thee)->position)
00220 # define Vatom_setRadius(thee, tRadius) ((thee)->radius = (tRadius))
00221 # define Vatom_getRadius(thee) ((thee)->radius)
00222 # define Vatom_setPartID(thee, tpartID) ((thee)->partID = (double)(tpartID))
00223 # define Vatom_getPartID(thee) ((thee)->partID)
00224 # define Vatom_setAtomID(thee, tatomID) ((thee)->id = (tatomID))
00225 # define Vatom_getAtomID(thee) ((thee)->id)
00226 # define Vatom_setCharge(thee, tCharge) ((thee)->charge = (tCharge))
00227 # define Vatom_getCharge(thee) ((thee)->charge)
00228 # define Vatom_setEpsilon(thee, tEpsilon) ((thee)->epsilon = (tEpsilon))
00229 # define Vatom_getEpsilon(thee) ((thee)->epsilon)
00230 # define Vatom_memChk(thee) (sizeof(Vatom))
00231 #endif
00232
00233
00234
00236
00243
00244
00249
00250
00251
00252
00253
00260
00261
00266
00267
00268
00269
00270
00276
00277
00284
00285
00291
00292
00298
00299
00306
00307
00315
00316
00324
00325
00326
00327
00334
00335
00336
00343
00344
00345
00352
00353
00360
00361
00367
00368
00374
00375
00381
00382
00388
00389
00390
00391 #endif
00392