| 55 |
|
nObjects_.push_back(info_->getNGlobalBends()); |
| 56 |
|
nObjects_.push_back(info_->getNGlobalTorsions()); |
| 57 |
|
nObjects_.push_back(info_->getNGlobalInversions()); |
| 58 |
+ |
nObjects_.push_back(info_->getNGlobalMolecules()); |
| 59 |
|
|
| 60 |
|
stuntdoubles_.resize(nObjects_[STUNTDOUBLE]); |
| 61 |
|
bonds_.resize(nObjects_[BOND]); |
| 62 |
|
bends_.resize(nObjects_[BEND]); |
| 63 |
|
torsions_.resize(nObjects_[TORSION]); |
| 64 |
|
inversions_.resize(nObjects_[INVERSION]); |
| 65 |
+ |
molecules_.resize(nObjects_[MOLECULE]); |
| 66 |
|
|
| 67 |
|
SimInfo::MoleculeIterator mi; |
| 68 |
|
Molecule::AtomIterator ai; |
| 82 |
|
|
| 83 |
|
for (mol = info_->beginMolecule(mi); mol != NULL; |
| 84 |
|
mol = info_->nextMolecule(mi)) { |
| 85 |
< |
|
| 85 |
> |
|
| 86 |
> |
molecules_[mol->getGlobalIndex()] = mol; |
| 87 |
> |
|
| 88 |
|
for(atom = mol->beginAtom(ai); atom != NULL; |
| 89 |
|
atom = mol->nextAtom(ai)) { |
| 90 |
|
stuntdoubles_[atom->getGlobalIndex()] = atom; |
| 124 |
|
int mol; |
| 125 |
|
int proc; |
| 126 |
|
RealType data[3]; |
| 127 |
< |
int worldRank = MPI::COMM_WORLD.Get_rank(); |
| 127 |
> |
int worldRank; |
| 128 |
> |
MPI_Comm_rank( MPI_COMM_WORLD, &worldRank); |
| 129 |
|
#endif |
| 130 |
|
|
| 131 |
|
for (unsigned int j = 0; j < stuntdoubles_.size(); ++j) { |
| 156 |
|
data[0] = centerPos.x(); |
| 157 |
|
data[1] = centerPos.y(); |
| 158 |
|
data[2] = centerPos.z(); |
| 159 |
< |
MPI::COMM_WORLD.Bcast(data, 3, MPI::REALTYPE, proc); |
| 159 |
> |
MPI_Bcast(data, 3, MPI_REALTYPE, proc, MPI_COMM_WORLD); |
| 160 |
|
} else { |
| 161 |
< |
MPI::COMM_WORLD.Bcast(data, 3, MPI::REALTYPE, proc); |
| 161 |
> |
MPI_Bcast(data, 3, MPI_REALTYPE, proc, MPI_COMM_WORLD); |
| 162 |
|
centerPos = Vector3d(data); |
| 163 |
|
} |
| 164 |
|
#else |
| 166 |
|
centerPos = center->getPos(); |
| 167 |
|
#endif |
| 168 |
|
|
| 169 |
+ |
for (unsigned int j = 0; j < molecules_.size(); ++j) { |
| 170 |
+ |
Vector3d r =centerPos - molecules_[j]->getCom(); |
| 171 |
+ |
currSnapshot->wrapVector(r); |
| 172 |
+ |
if (r.length() <= distance) { |
| 173 |
+ |
bsResult.bitsets_[MOLECULE].setBitOn(j); |
| 174 |
+ |
} |
| 175 |
+ |
} |
| 176 |
|
for (unsigned int j = 0; j < stuntdoubles_.size(); ++j) { |
| 177 |
|
Vector3d r =centerPos - stuntdoubles_[j]->getPos(); |
| 178 |
|
currSnapshot->wrapVector(r); |
| 241 |
|
int mol; |
| 242 |
|
int proc; |
| 243 |
|
RealType data[3]; |
| 244 |
< |
int worldRank = MPI::COMM_WORLD.Get_rank(); |
| 244 |
> |
int worldRank; |
| 245 |
> |
MPI_Comm_rank( MPI_COMM_WORLD, &worldRank); |
| 246 |
|
#endif |
| 247 |
|
|
| 248 |
|
for (unsigned int j = 0; j < stuntdoubles_.size(); ++j) { |
| 273 |
|
data[0] = centerPos.x(); |
| 274 |
|
data[1] = centerPos.y(); |
| 275 |
|
data[2] = centerPos.z(); |
| 276 |
< |
MPI::COMM_WORLD.Bcast(data, 3, MPI::REALTYPE, proc); |
| 276 |
> |
MPI_Bcast(data, 3, MPI_REALTYPE, proc, MPI_COMM_WORLD); |
| 277 |
|
} else { |
| 278 |
< |
MPI::COMM_WORLD.Bcast(data, 3, MPI::REALTYPE, proc); |
| 278 |
> |
MPI_Bcast(data, 3, MPI_REALTYPE, proc, MPI_COMM_WORLD); |
| 279 |
|
centerPos = Vector3d(data); |
| 280 |
|
} |
| 281 |
|
#else |
| 282 |
|
center = stuntdoubles_[i]; |
| 283 |
|
centerPos = center->getPos(frame); |
| 284 |
|
#endif |
| 285 |
+ |
for (unsigned int j = 0; j < molecules_.size(); ++j) { |
| 286 |
+ |
Vector3d r =centerPos - molecules_[j]->getCom(frame); |
| 287 |
+ |
currSnapshot->wrapVector(r); |
| 288 |
+ |
if (r.length() <= distance) { |
| 289 |
+ |
bsResult.bitsets_[MOLECULE].setBitOn(j); |
| 290 |
+ |
} |
| 291 |
+ |
} |
| 292 |
+ |
|
| 293 |
|
for (unsigned int j = 0; j < stuntdoubles_.size(); ++j) { |
| 294 |
|
Vector3d r =centerPos - stuntdoubles_[j]->getPos(frame); |
| 295 |
|
currSnapshot->wrapVector(r); |