| 44 |  | * | 
| 45 |  | *  Created by Charles F. Vardeman II on 11 Dec 2006. | 
| 46 |  | *  @author  Charles F. Vardeman II | 
| 47 | < | *  @version $Id: ConvexHull.cpp,v 1.17 2009-10-20 20:36:56 gezelter Exp $ | 
| 47 | > | *  @version $Id: ConvexHull.cpp,v 1.18 2009-10-21 02:49:43 gezelter Exp $ | 
| 48 |  | * | 
| 49 |  | */ | 
| 50 |  |  | 
| 162 |  |  | 
| 163 |  | int globalHullSites = 0; | 
| 164 |  | for (int iproc = 0; iproc < nproc; iproc++){ | 
| 165 | – | std::cerr << "iproc = " << iproc << " sites = " << hullSitesOnProc[iproc] << "\n"; | 
| 165 |  | globalHullSites += hullSitesOnProc[iproc]; | 
| 166 |  | coordsOnProc[iproc] = dim_ * hullSitesOnProc[iproc]; | 
| 167 |  | } | 
| 174 |  | vectorDisplacements[iproc] = vectorDisplacements[iproc-1] + coordsOnProc[iproc-1]; | 
| 175 |  | } | 
| 176 |  |  | 
| 177 | < | std::vector<double> globalCoords(dim_*globalHullSites); | 
| 178 | < | std::vector<double> globalVels(dim_*globalHullSites); | 
| 177 | > | std::vector<double> globalCoords(dim_ * globalHullSites); | 
| 178 | > | std::vector<double> globalVels(dim_ * globalHullSites); | 
| 179 |  | std::vector<double> globalMasses(globalHullSites); | 
| 180 | + |  | 
| 181 |  | int count = coordsOnProc[myrank]; | 
| 182 |  |  | 
| 183 | < | MPI::COMM_WORLD.Allgatherv(&coords[0], count, MPI::DOUBLE, | 
| 184 | < | &globalCoords[0], &coordsOnProc[0], &vectorDisplacements[0], | 
| 183 | > | MPI::COMM_WORLD.Allgatherv(&coords[0], count, MPI::DOUBLE, &globalCoords[0], | 
| 184 | > | &coordsOnProc[0], &vectorDisplacements[0], | 
| 185 |  | MPI::DOUBLE); | 
| 186 |  |  | 
| 187 | < | MPI::COMM_WORLD.Allgatherv(&vels[0], count, MPI::DOUBLE, | 
| 188 | < | &globalVels[0], &coordsOnProc[0], &vectorDisplacements[0], | 
| 187 | > | MPI::COMM_WORLD.Allgatherv(&vels[0], count, MPI::DOUBLE, &globalVels[0], | 
| 188 | > | &coordsOnProc[0], &vectorDisplacements[0], | 
| 189 |  | MPI::DOUBLE); | 
| 190 |  |  | 
| 191 |  | MPI::COMM_WORLD.Allgatherv(&masses[0], localHullSites, MPI::DOUBLE, | 
| 192 | < | &globalMasses[0], &hullSitesOnProc[0], &displacements[0], | 
| 193 | < | MPI::DOUBLE); | 
| 192 | > | &globalMasses[0], &hullSitesOnProc[0], | 
| 193 | > | &displacements[0], MPI::DOUBLE); | 
| 194 |  |  | 
| 195 |  | // Free previous hull | 
| 196 |  | qh_freeqhull(!qh_ALL); | 
| 228 |  | Vector3d faceVel = V3Zero; | 
| 229 |  | Vector3d p[3]; | 
| 230 |  | RealType faceMass = 0.0; | 
| 231 | + |  | 
| 232 |  | int ver = 0; | 
| 233 |  |  | 
| 234 |  | FOREACHvertex_(vertices){ | 
| 246 |  | globalVels[dim_ * id + 2]); | 
| 247 |  | mass = globalMasses[id]; | 
| 248 |  |  | 
| 249 | < | // localID will be between 0 and hullSitesOnProc[myrank] if we own this guy. | 
| 249 | > | // localID will be between 0 and hullSitesOnProc[myrank] if we | 
| 250 | > | // own this guy. | 
| 251 | > |  | 
| 252 |  | int localID = id - displacements[myrank]; | 
| 253 | < | if (id >= 0 && id < hullSitesOnProc[myrank]) | 
| 253 | > |  | 
| 254 | > | if (localID >= 0 && localID < hullSitesOnProc[myrank]) | 
| 255 |  | face.addVertexSD(bodydoubles[localID]); | 
| 256 | < | else | 
| 253 | < | face.addVertexSD(NULL); | 
| 256 | > |  | 
| 257 |  | #else | 
| 258 |  | vel = bodydoubles[id]->getVel(); | 
| 259 |  | mass = bodydoubles[id]->getMass(); | 
| 291 |  | << totlong << curlong << std::endl; | 
| 292 |  | } | 
| 293 |  |  | 
| 291 | – |  | 
| 292 | – |  | 
| 294 |  | void ConvexHull::printHull(const std::string& geomFileName) { | 
| 295 |  | FILE *newGeomFile; | 
| 296 |  |  |