ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Atom.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/Atom.cpp (file contents):
Revision 787 by mmeineke, Thu Sep 25 19:27:15 2003 UTC vs.
Revision 1136 by tim, Tue Apr 27 16:26:44 2004 UTC

# Line 6 | Line 6 | Atom::Atom(int theIndex, SimState* theConfig) {
6   #include "Atom.hpp"
7  
8   Atom::Atom(int theIndex, SimState* theConfig) {
9 <  
9 >
10 >  objType = OT_ATOM;
11    myConfig = theConfig;
12    hasCoords = false;
13  
13  c_n_hyd = 0;
14    has_dipole = 0;
15 <  is_VDW = 0;
16 <  is_LJ = 0;
15 >  has_charge = 0;
16    
17    index = theIndex;
18    offset = 0;
# Line 42 | Line 41 | void Atom::setCoords(void){
41  
42    if( myConfig->isAllocated() ){
43  
45
44      myConfig->getAtomPointers( index,
45                       &pos,
46                       &vel,
# Line 50 | Line 48 | void Atom::setCoords(void){
48                       &trq,
49                       &Amat,
50                       &mu,  
51 <                     &ul );
51 >                     &ul,
52 >                     &rc,
53 >                     &massRatio);
54    }
55    else{
56      sprintf( painCave.errMsg,
# Line 59 | Line 59 | void Atom::setCoords(void){
59      painCave.isFatal = 1;
60      simError();
61    }
62 <
62 >  
63    hasCoords = true;
64
65 }
66
67 // void Atom::addAtoms(int nAdded, double* Apos, double* Avel, double* Afrc,
68 //                    double* Atrq, double* AAmat, double* Amu,
69 //                    double* Aul) {
70
71 //   int nNew = nElements+nAdded;
72
73 //   double* new_pos = new double[nNew*3];
74 //   double* new_vel = new double[nNew*3];
75 //   double* new_frc = new double[nNew*3];
76 //   double* new_trq = new double[nNew*3];
77 //   double* new_Amat = new double[nNew*9];
78 //   double* new_mu = new double[nNew];
79 //   double* new_ul = new double[nNew*3];
80 //   int i, j;
64    
65 < //   for (i = 0; i < 3*nElements; i++) {
83 < //     new_pos[i] = pos[i];
84 < //     new_vel[i] = vel[i];
85 < //     new_frc[i] = frc[i];
86 < //     new_trq[i] = trq[i];
87 < //     new_ul[i] = ul[i];
88 < //   }
89 <
90 < //   for(i = 0; i < 3*nAdded; i++) {
91 < //     j = i + 3*nElements;
92 < //     new_pos[j] = Apos[i];
93 < //     new_vel[j] = Avel[i];
94 < //     new_frc[j] = Afrc[i];
95 < //     new_trq[j] = Atrq[i];
96 < //     new_ul[j] = Aul[i];
97 < //   }
98 <
99 < //   for (i = 0; i < 9*nElements; i++) {
100 < //     new_Amat[i] = Amat[i];
101 < //   }
102 <
103 < //   for(i = 0; i < 9*nAdded; i++) {
104 < //     j = i + 9*nElements;
105 < //     new_Amat[j] = AAmat[i];
106 < //   }
107 <
108 < //   for (i = 0; i < nElements; i++) {
109 < //     new_mu[i] = mu[i];
110 < //   }
111 <
112 < //   for(i = 0; i < nAdded; i++) {
113 < //     j = i + nElements;
114 < //     new_mu[j] = Amu[i];
115 < //   }
116 <
117 < //   delete[] pos;
118 < //   delete[] vel;
119 < //   delete[] frc;
120 < //   delete[] trq;
121 < //   delete[] Amat;
122 < //   delete[] mu;
123 <
124 < //   pos = new_pos;
125 < //   vel = new_vel;
126 < //   frc = new_frc;
127 < //   trq = new_trq;
128 < //   ul = new_ul;
129 < //   Amat = new_Amat;
130 < //   mu = new_mu;
131 <
132 < //   nElements = nNew;
133 < // }
134 <
135 < // void Atom::deleteAtom(int theIndex) {
136 < //   deleteRange(theIndex, theIndex);
137 < // }
138 <
139 < // void Atom::deleteRange(int startIndex, int stopIndex) {
140 <
141 < //   int nNew = nElements-(stopIndex-startIndex+1);
142 <
143 < //   double* new_pos = new double[nNew*3];
144 < //   double* new_vel = new double[nNew*3];
145 < //   double* new_frc = new double[nNew*3];
146 < //   double* new_trq = new double[nNew*3];
147 < //   double* new_Amat = new double[nNew*9];
148 < //   double* new_mu = new double[nNew];
149 < //   double* new_ul = new double[nNew*3];
150 < //   int i, j;
151 <  
152 < //   for (i = 0; i < 3*startIndex; i++) {
153 < //     new_pos[i] = pos[i];
154 < //     new_vel[i] = vel[i];
155 < //     new_frc[i] = frc[i];
156 < //     new_trq[i] = trq[i];
157 < //     new_ul[i] = ul[i];
158 < //   }
65 > }
66  
160 //   for(i = 3*(stopIndex + 1); i < 3*nElements; i++) {
161 //     j = i - 3*startIndex + 1;
162 //     new_pos[j] = pos[i];
163 //     new_vel[j] = vel[i];
164 //     new_frc[j] = frc[i];
165 //     new_trq[j] = trq[i];
166 //     new_ul[j] = ul[i];
167 //   }
168
169 //   for (i = 0; i < 9*startIndex; i++) {
170 //     new_Amat[i] = Amat[i];
171 //   }
172
173 //   for(i = 9*(stopIndex + 1); i < 9*nElements; i++) {
174 //     j = i - 9*startIndex + 1;
175 //     new_Amat[j] = Amat[i];
176 //   }
177
178 //   for (i = 0; i < startIndex; i++) {
179 //     new_mu[i] = mu[i];
180 //   }
181
182 //   for(i = (stopIndex+1); i < nElements; i++) {
183 //     j = i - startIndex + 1;
184 //     new_mu[j] = mu[i];
185 //   }
186
187 //   delete[] pos;
188 //   delete[] vel;
189 //   delete[] frc;
190 //   delete[] trq;
191 //   delete[] Amat;
192 //   delete[] mu;
193
194 //   pos = new_pos;
195 //   vel = new_vel;
196 //   frc = new_frc;
197 //   trq = new_trq;
198 //   ul = new_ul;
199 //   Amat = new_Amat;
200 //   mu = new_mu;
201
202 //   nElements = nNew;
203 // }
204
205
67   void Atom::getPos( double theP[3] ){
68    
69    if( hasCoords ){
# Line 221 | Line 82 | void Atom::setPos( double theP[3] ){
82   }
83  
84   void Atom::setPos( double theP[3] ){
85 <  
85 >
86    if( hasCoords ){
87      pos[offsetX] = theP[0];
88      pos[offsetY] = theP[1];
# Line 307 | Line 168 | void GeneralAtom::zeroForces( void ){
168   }
169  
170  
171 < void GeneralAtom::zeroForces( void ){
171 > void Atom::zeroForces( void ){
172    
312  
173    if( hasCoords ){
174      frc[offsetX] = 0.0;
175      frc[offsetY] = 0.0;
# Line 324 | Line 184 | void GeneralAtom::zeroForces( void ){
184      simError();
185    }
186   }
187 +
188 + void Atom::getRc(double theRc[3]){
189 +
190 +  if( hasCoords ){
191 +    theRc[0] = rc[offsetX];
192 +    theRc[1] = rc[offsetY];
193 +    theRc[2] = rc[offsetZ];
194 +  }
195 +  else{
196 +    
197 +    sprintf( painCave.errMsg,
198 +             "Attempt to get rc for atom %d before coords set.\n",
199 +             index );
200 +    painCave.isFatal = 1;
201 +    simError();
202 +  }
203 +  
204 + }
205 +
206 + void Atom::setRc(double theRc[3]){
207 +  if( hasCoords ){
208 +    rc[offsetX] = theRc[0] ;
209 +    rc[offsetY] = theRc[1];
210 +    rc[offsetZ] = theRc[2];
211 +  }
212 +  else{
213 +    
214 +    sprintf( painCave.errMsg,
215 +             "Attempt to set rc for atom %d before coords set.\n",
216 +             index );
217 +    painCave.isFatal = 1;
218 +  }
219 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines