ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/headers/Atom.hpp
(Generate patch)

Comparing trunk/mdtools/headers/Atom.hpp (file contents):
Revision 184 by mmeineke, Thu Nov 21 20:33:06 2002 UTC vs.
Revision 237 by mmeineke, Fri Jan 17 21:53:33 2003 UTC

# Line 12 | Line 12 | class Atom{ (public)
12      is_VDW = 0;
13      is_LJ = 0;
14      index = theIndex;
15 +    offset = 3 * index;
16 +    offsetX = offset;
17 +    offsetY = offset+1;
18 +    offsetZ = offset+2;
19    }
20    virtual ~Atom() {}
21  
# Line 27 | Line 31 | class Atom{ (public)
31      delete[] frc;
32      delete[] trq;
33    }
34 +
35 +  static double* getPosArray( void ) { return pos; }
36 +  static double* getVelArray( void ) { return vel; }
37 +  static double* getFrcArray( void ) { return frc; }
38 +  static double* getTrqArray( void ) { return trq; }
39    
31  double getX() const {return pos[3*index];}
32  double getY() const {return pos[3*index+1];}
33  double getZ() const {return pos[3*index+2];}
34  void setX(double x) {pos[3*index]   = x;}
35  void setY(double y) {pos[3*index+1] = y;}
36  void setZ(double z) {pos[3*index+2] = z;}
40    
41 <  double get_vx() const  {return vel[3*index];}
42 <  double get_vy() const  {return vel[3*index+1];}
43 <  double get_vz() const  {return vel[3*index+2];}
44 <  void set_vx(double vx) {vel[3*index]   = vx;}
45 <  void set_vy(double vy) {vel[3*index+1] = vy;}
46 <  void set_vz(double vz) {vel[3*index+2] = vz;}
41 >  double getX() const {return pos[offsetX];}
42 >  double getY() const {return pos[offsetY];}
43 >  double getZ() const {return pos[offsetZ];}
44 >  void setX(double x) {pos[offsetX] = x;}
45 >  void setY(double y) {pos[offsetY] = y;}
46 >  void setZ(double z) {pos[offsetZ] = z;}
47    
48 <  double getFx() const   {return frc[3*index];}
49 <  double getFy() const   {return frc[3*index+1];}
50 <  double getFz() const   {return frc[3*index+2];}
51 <  void addFx(double add) {frc[3*index]   += add;}
52 <  void addFy(double add) {frc[3*index+1] += add;}
53 <  void addFz(double add) {frc[3*index+2] += add;}
48 >  double get_vx() const  {return vel[offsetX];}
49 >  double get_vy() const  {return vel[offsetY];}
50 >  double get_vz() const  {return vel[offsetZ];}
51 >  void set_vx(double vx) {vel[offsetX]   = vx;}
52 >  void set_vy(double vy) {vel[offsetY] = vy;}
53 >  void set_vz(double vz) {vel[offsetZ] = vz;}
54 >  
55 >  double getFx() const   {return frc[offsetX];}
56 >  double getFy() const   {return frc[offsetY];}
57 >  double getFz() const   {return frc[offsetZ];}
58 >  void addFx(double add) {frc[offsetX]   += add;}
59 >  void addFy(double add) {frc[offsetY] += add;}
60 >  void addFz(double add) {frc[offsetZ] += add;}
61    virtual void zeroForces() = 0;
62  
63    double getMass() const {return c_mass;}
# Line 63 | Line 73 | class Atom{ (public)
73    void setCovalent(double covalent) {c_covalent = covalent;}
74    
75    int getIndex() const {return index;}
76 <  void setIndex(int theIndex) {index = theIndex;}
77 <  
76 >  void setIndex(int theIndex) {
77 >    index = theIndex;
78 >    offset = index*3;
79 >    offsetX = offset;
80 >    offsetY = offset+1;
81 >    offsetZ = offset+2;
82 >  }
83 >
84    char *getType() {return c_name;}
85    void setType(char * name) {strcpy(c_name,name);}
86 +  
87 +  int getIdent( void ) { return ident; }
88 +  void setIdent( int info ) { ident = info; }
89  
90    void set_n_hydrogens( int n_h ) {c_n_hyd = n_h;}
91    int get_n_hydrogens() const {return c_n_hyd;}
# Line 95 | Line 114 | class Atom{ (public)
114    double c_covalent; // The covalent radius of the atom.
115  
116    int index; /* set the atom's index */
117 +  int offset; // the atom's offset in the storage array
118 +  int offsetX, offsetY, offsetZ;
119  
120    char c_name[100]; /* it's name */
121 +  int ident;  // it's unique numeric identity.
122  
123    int c_n_hyd; // the number of hydrogens bonded to the atom
124    
# Line 116 | Line 138 | class GeneralAtom : public Atom{ (public)
138  
139    int isDirectional( void ){ return 0; }
140    void zeroForces() {
141 <    frc[3*index]   = 0.0;
142 <    frc[3*index+1] = 0.0;
143 <    frc[3*index+2] = 0.0;
141 >    frc[offsetX]   = 0.0;
142 >    frc[offsetY] = 0.0;
143 >    frc[offsetZ] = 0.0;
144    }
145   };
146  
# Line 159 | Line 181 | class DirectionalAtom : public Atom { (public)
181    void setJy( double the_jy ) { jy = the_jy; }
182    void setJz( double the_jz ) { jz = the_jz; }
183      
184 <  void addTx( double the_tx ) { trq[3*index]   += the_tx;}
185 <  void addTy( double the_ty ) { trq[3*index+1] += the_ty;}
186 <  void addTz( double the_tz ) { trq[3*index+2] += the_tz;}
184 >  void addTx( double the_tx ) { trq[offsetX]   += the_tx;}
185 >  void addTy( double the_ty ) { trq[offsetY] += the_ty;}
186 >  void addTz( double the_tz ) { trq[offsetZ] += the_tz;}
187  
188    void setMu( double the_mu ) { mu = the_mu; }
189  
190    void zeroForces() {
191 <    frc[3*index]   = 0.0;
192 <    frc[3*index+1] = 0.0;
193 <    frc[3*index+2] = 0.0;
191 >    frc[offsetX]   = 0.0;
192 >    frc[offsetY] = 0.0;
193 >    frc[offsetZ] = 0.0;
194  
195 <    trq[3*index]   = 0.0;
196 <    trq[3*index+1] = 0.0;
197 <    trq[3*index+2] = 0.0;
195 >    trq[offsetX]   = 0.0;
196 >    trq[offsetY] = 0.0;
197 >    trq[offsetZ] = 0.0;
198    }
199  
200    double getAxx( void ) { return Axx; }
# Line 200 | Line 222 | class DirectionalAtom : public Atom { (public)
222    double getJy( void ) { return jy; }
223    double getJz( void ) { return jz; }
224  
225 <  double getTx( void ) { return trq[3*index];}
226 <  double getTy( void ) { return trq[3*index+1]; }
227 <  double getTz( void ) { return trq[3*index+2]; }
225 >  double getTx( void ) { return trq[offsetX];}
226 >  double getTy( void ) { return trq[offsetY]; }
227 >  double getTz( void ) { return trq[offsetZ]; }
228  
229    double getIxx( void ) { return Ixx; }
230    double getIxy( void ) { return Ixy; }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines