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 189 by mmeineke, Tue Nov 26 21:04:43 2002 UTC vs.
Revision 253 by chuckv, Thu Jan 30 15:20:21 2003 UTC

# Line 13 | Line 13 | class Atom{ (public)
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 28 | 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    
32  double getX() const {return pos[offset];}
33  double getY() const {return pos[offset+1];}
34  double getZ() const {return pos[offset+2];}
35  void setX(double x) {pos[offset]   = x;}
36  void setY(double y) {pos[offset+1] = y;}
37  void setZ(double z) {pos[offset+2] = z;}
40    
41 <  double get_vx() const  {return vel[offset];}
42 <  double get_vy() const  {return vel[offset+1];}
43 <  double get_vz() const  {return vel[offset+2];}
44 <  void set_vx(double vx) {vel[offset]   = vx;}
45 <  void set_vy(double vy) {vel[offset+1] = vy;}
46 <  void set_vz(double vz) {vel[offset+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[offset];}
49 <  double getFy() const   {return frc[offset+1];}
50 <  double getFz() const   {return frc[offset+2];}
51 <  void addFx(double add) {frc[offset]   += add;}
52 <  void addFy(double add) {frc[offset+1] += add;}
53 <  void addFz(double add) {frc[offset+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 64 | 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; offset = index*3;}
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 + #ifdef IS_MPI
91 +  int getGlobalIndex( void ) { return myGlobalIndex; }
92 +  void setGlobalIndex( int info ) { myGlobalIndex = info; }
93 + #endif // is_mpi
94 +
95    void set_n_hydrogens( int n_h ) {c_n_hyd = n_h;}
96    int get_n_hydrogens() const {return c_n_hyd;}
97  
# Line 97 | Line 120 | class Atom{ (public)
120  
121    int index; /* set the atom's index */
122    int offset; // the atom's offset in the storage array
123 +  int offsetX, offsetY, offsetZ;
124  
125    char c_name[100]; /* it's name */
126 +  int ident;  // it's unique numeric identity.
127  
128    int c_n_hyd; // the number of hydrogens bonded to the atom
129    
130    int has_dipole; // dipole boolean
131    int is_VDW;    // VDW boolean
132    int is_LJ;    // LJ boolean
133 +
134 + #ifdef IS_MPI
135 +  int myGlobalIndex;
136 + #endif
137    
138   };
139  
# Line 118 | Line 147 | class GeneralAtom : public Atom{ (public)
147  
148    int isDirectional( void ){ return 0; }
149    void zeroForces() {
150 <    frc[offset]   = 0.0;
151 <    frc[offset+1] = 0.0;
152 <    frc[offset+2] = 0.0;
150 >    frc[offsetX]   = 0.0;
151 >    frc[offsetY] = 0.0;
152 >    frc[offsetZ] = 0.0;
153    }
154   };
155  
# Line 161 | Line 190 | class DirectionalAtom : public Atom { (public)
190    void setJy( double the_jy ) { jy = the_jy; }
191    void setJz( double the_jz ) { jz = the_jz; }
192      
193 <  void addTx( double the_tx ) { trq[offset]   += the_tx;}
194 <  void addTy( double the_ty ) { trq[offset+1] += the_ty;}
195 <  void addTz( double the_tz ) { trq[offset+2] += the_tz;}
193 >  void addTx( double the_tx ) { trq[offsetX]   += the_tx;}
194 >  void addTy( double the_ty ) { trq[offsetY] += the_ty;}
195 >  void addTz( double the_tz ) { trq[offsetZ] += the_tz;}
196  
197    void setMu( double the_mu ) { mu = the_mu; }
198  
199    void zeroForces() {
200 <    frc[offset]   = 0.0;
201 <    frc[offset+1] = 0.0;
202 <    frc[offset+2] = 0.0;
200 >    frc[offsetX]   = 0.0;
201 >    frc[offsetY] = 0.0;
202 >    frc[offsetZ] = 0.0;
203  
204 <    trq[offset]   = 0.0;
205 <    trq[offset+1] = 0.0;
206 <    trq[offset+2] = 0.0;
204 >    trq[offsetX]   = 0.0;
205 >    trq[offsetY] = 0.0;
206 >    trq[offsetZ] = 0.0;
207    }
208  
209    double getAxx( void ) { return Axx; }
# Line 202 | Line 231 | class DirectionalAtom : public Atom { (public)
231    double getJy( void ) { return jy; }
232    double getJz( void ) { return jz; }
233  
234 <  double getTx( void ) { return trq[offset];}
235 <  double getTy( void ) { return trq[offset+1]; }
236 <  double getTz( void ) { return trq[offset+2]; }
234 >  double getTx( void ) { return trq[offsetX];}
235 >  double getTy( void ) { return trq[offsetY]; }
236 >  double getTz( void ) { return trq[offsetZ]; }
237  
238    double getIxx( void ) { return Ixx; }
239    double getIxy( void ) { return Ixy; }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines