• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

src/generic/apbs/vatom.h

Go to the documentation of this file.
00001 
00054 #ifndef _VATOM_H_
00055 #define _VATOM_H_
00056 
00057 #include "maloc/maloc.h"
00058 #include "apbs/vhal.h"
00059 
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 /* if defined(WITH_TINKER) */
00097 };
00098 
00103 typedef struct sVatom Vatom;
00104 
00105 #if !defined(VINLINE_VATOM)
00106 
00113     VEXTERNC double* Vatom_getPosition(Vatom *thee);
00114 
00121     VEXTERNC void    Vatom_setRadius(Vatom *thee, double radius);
00122 
00129     VEXTERNC double  Vatom_getRadius(Vatom *thee);
00130 
00138     VEXTERNC void    Vatom_setPartID(Vatom *thee, int partID);
00139 
00147     VEXTERNC double     Vatom_getPartID(Vatom *thee);
00148 
00155     VEXTERNC void Vatom_setAtomID(Vatom *thee, int id);
00156 
00163     VEXTERNC double Vatom_getAtomID(Vatom *thee);
00164 
00171     VEXTERNC void    Vatom_setCharge(Vatom *thee, double charge);
00172 
00179     VEXTERNC double  Vatom_getCharge(Vatom *thee);
00180  
00187  VEXTERNC void    Vatom_setEpsilon(Vatom *thee, double epsilon);
00188 
00195  VEXTERNC double  Vatom_getEpsilon(Vatom *thee);
00196 
00204     VEXTERNC unsigned long int Vatom_memChk(Vatom *thee);
00205 
00206 #else /* if defined(VINLINE_VATOM) */
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 /* if !defined(VINLINE_VATOM) */
00220 
00221 /* ///////////////////////////////////////////////////////////////////////////
00222 // Class Vatom: Non-Inlineable methods (vatom.c)
00224 
00231 VEXTERNC void    Vatom_setResName(Vatom *thee, char resName[VMAX_RECLEN]);
00232 
00237 VEXTERNC void    Vatom_setAtomName(
00238   Vatom *thee,  
00239   char atomName[VMAX_RECLEN]  
00240   );
00241 
00248 VEXTERNC void    Vatom_getResName(Vatom *thee, char resName[VMAX_RECLEN]);
00249 
00254 VEXTERNC void   Vatom_getAtomName(
00255   Vatom *thee, 
00256   char atomName[VMAX_RECLEN] 
00257   );
00258 
00264 VEXTERNC Vatom* Vatom_ctor();
00265 
00272 VEXTERNC int     Vatom_ctor2(Vatom *thee);
00273 
00279 VEXTERNC void    Vatom_dtor(Vatom **thee);
00280 
00286 VEXTERNC void    Vatom_dtor2(Vatom *thee);
00287 
00294 VEXTERNC void   Vatom_setPosition(Vatom *thee, double position[3]);
00295 
00303 VEXTERNC void Vatom_copyTo(Vatom *thee, Vatom *dest);
00304 
00312 VEXTERNC void Vatom_copyFrom(Vatom *thee, Vatom *src);
00313 
00314 #if defined(WITH_TINKER)
00315 
00322 VEXTERNC void   Vatom_setInducedDipole(Vatom *thee, 
00323                                        double inducedDipole[3]);
00324 
00331 VEXTERNC void   Vatom_setNLInducedDipole(Vatom *thee, 
00332                                        double nlInducedDipole[3]);
00333 
00340 VEXTERNC void   Vatom_setDipole(Vatom *thee, double dipole[3]);
00341 
00348 VEXTERNC void   Vatom_setQuadrupole(Vatom *thee, double quadrupole[9]);
00349 
00355 VEXTERNC double*  Vatom_getDipole(Vatom *thee);
00356 
00362 VEXTERNC double*  Vatom_getQuadrupole(Vatom *thee);
00363 
00369 VEXTERNC double*  Vatom_getInducedDipole(Vatom *thee);
00370 
00376 VEXTERNC double*  Vatom_getNLInducedDipole(Vatom *thee);
00377 #endif /* if defined(WITH_TINKER) */
00378 
00379 #endif /* ifndef _VATOM_H_ */

Generated on Wed Oct 20 2010 12:01:33 for APBS by  doxygen 1.7.2