--- trunk/OOPSE/libmdtools/Atom.hpp 2003/07/14 21:28:54 597 +++ trunk/OOPSE/libmdtools/Atom.hpp 2003/07/14 21:48:43 599 @@ -36,6 +36,9 @@ class Atom{ (public) static double* getMuArray( void ) { return mu; } static double* getUlArray( void ) { return ul; } + void getPos( double theP[3] ); + void setPos( double theP[3] ); + double getX() const {return pos[offsetX];} double getY() const {return pos[offsetY];} double getZ() const {return pos[offsetZ];} @@ -43,6 +46,9 @@ class Atom{ (public) void setY(double y) {pos[offsetY] = y;} void setZ(double z) {pos[offsetZ] = z;} + void getVel( double theV[3] ); + void setVel( double theV[3] ); + double get_vx() const {return vel[offsetX];} double get_vy() const {return vel[offsetY];} double get_vz() const {return vel[offsetZ];} @@ -50,6 +56,10 @@ class Atom{ (public) void set_vy(double vy) {vel[offsetY] = vy;} void set_vz(double vz) {vel[offsetZ] = vz;} + + void getFrc( double theF[3] ); + void addFrc( double theF[3] ); + double getFx() const {return frc[offsetX];} double getFy() const {return frc[offsetY];} double getFz() const {return frc[offsetZ];} @@ -161,26 +171,17 @@ class DirectionalAtom : public Atom { (public) void setSSD( int value) { ssdIdentity = value; } int isSSD(void) {return ssdIdentity; } - void setA( double the_A[3][3] ); - - void setI( double the_I[3][3] ); - - void setQ( double the_q[4] ); void setEuler( double phi, double theta, double psi ); + + double getSUx( void ) { return sux; } + double getSUy( void ) { return suy; } + double getSUz( void ) { return suz; } void setSUx( double the_sux ) { sux = the_sux; } void setSUy( double the_suy ) { suy = the_suy; } void setSUz( double the_suz ) { suz = the_suz; } - void setJx( double the_jx ) { jx = the_jx; } - void setJy( double the_jy ) { jy = the_jy; } - void setJz( double the_jz ) { jz = the_jz; } - - void addTx( double the_tx ) { trq[offsetX] += the_tx;} - void addTy( double the_ty ) { trq[offsetY] += the_ty;} - void addTz( double the_tz ) { trq[offsetZ] += the_tz;} - void zeroForces() { frc[offsetX] = 0.0; frc[offsetY] = 0.0; @@ -192,22 +193,39 @@ class DirectionalAtom : public Atom { (public) } void getA( double the_A[3][3] ); // get the full rotation matrix + void setA( double the_A[3][3] ); - double getSUx( void ) { return sux; } - double getSUy( void ) { return suy; } - double getSUz( void ) { return suz; } - void getU( double the_u[3] ); // get the unit vetor + void updateU( void ); + void getQ( double the_q[4] ); // get the quanternions + void setQ( double the_q[4] ); + void getJ( double theJ[3] ); + void setJ( double theJ[3] ); + double getJx( void ) { return jx; } double getJy( void ) { return jy; } double getJz( void ) { return jz; } + void setJx( double the_jx ) { jx = the_jx; } + void setJy( double the_jy ) { jy = the_jy; } + void setJz( double the_jz ) { jz = the_jz; } + + void getTrq( double theT[3] ); + void addTrq( double theT[3] ); + double getTx( void ) { return trq[offsetX];} double getTy( void ) { return trq[offsetY]; } double getTz( void ) { return trq[offsetZ]; } + void addTx( double the_tx ) { trq[offsetX] += the_tx;} + void addTy( double the_ty ) { trq[offsetY] += the_ty;} + void addTz( double the_tz ) { trq[offsetZ] += the_tz;} + + void setI( double the_I[3][3] ); + void getI( double the_I[3][3] ); + double getIxx( void ) { return Ixx; } double getIxy( void ) { return Ixy; } double getIxz( void ) { return Ixz; } @@ -219,14 +237,15 @@ class DirectionalAtom : public Atom { (public) double getIzx( void ) { return Izx; } double getIzy( void ) { return Izy; } double getIzz( void ) { return Izz; } + double getMu( void ) { return mu[index]; } void setMu( double the_mu ) { mu[index] = the_mu; } void lab2Body( double r[3] ); void body2Lab( double r[3] ); - void updateU( void ); + private: int dIndex;