172 |
|
double r[3]; |
173 |
|
double boxNum[3]; |
174 |
|
double percentScale[3]; |
175 |
+ |
double delta[3]; |
176 |
|
double rxi, ryi, rzi; |
177 |
|
|
178 |
|
molecules = entry_plug->molecules; |
182 |
|
percentScale[1] = (newBox[1] - oldBox[1]) / oldBox[1]; |
183 |
|
percentScale[2] = (newBox[2] - oldBox[2]) / oldBox[2]; |
184 |
|
|
184 |
– |
std::cerr << "ps = " << percentScale[0] <<" " << percentScale[1] << " " << percentScale[2] << "\n"; |
185 |
– |
|
186 |
– |
|
185 |
|
for (i=0; i < entry_plug->n_mol; i++) { |
186 |
|
|
187 |
|
molecules[i].getCOM(r); |
197 |
|
boxNum[2] = oldBox[2] * copysign(1.0,r[2]) * |
198 |
|
(double)(int)(fabs(r[2]/oldBox[2]) + 0.5); |
199 |
|
|
202 |
– |
|
203 |
– |
std::cerr << "boxNum = " << boxNum[0] << " " << boxNum[1] << " " << boxNum[2] << "\n"; |
204 |
– |
|
200 |
|
rxi = r[0] - boxNum[0]; |
201 |
|
ryi = r[1] - boxNum[1]; |
202 |
|
rzi = r[2] - boxNum[2]; |
206 |
|
ryi += ryi*percentScale[1]; |
207 |
|
rzi += rzi*percentScale[2]; |
208 |
|
|
209 |
< |
r[0] = rxi + boxNum[0]; |
210 |
< |
r[1] = ryi + boxNum[1]; |
211 |
< |
r[2] = rzi + boxNum[2]; |
209 |
> |
delta[0] = r[0] - (rxi + boxNum[0]); |
210 |
> |
delta[1] = r[1] - (ryi + boxNum[1]); |
211 |
> |
delta[2] = r[2] - (rzi + boxNum[2]); |
212 |
|
|
213 |
< |
molecules[i].moveCOM(r); |
213 |
> |
molecules[i].moveCOM(delta); |
214 |
|
} |
215 |
|
} |