ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/math/ConvexHull.cpp
(Generate patch)

Comparing trunk/src/math/ConvexHull.cpp (file contents):
Revision 1390 by gezelter, Wed Nov 25 20:02:06 2009 UTC vs.
Revision 1410 by chuckv, Wed Feb 24 15:22:03 2010 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 2008, 2009 The University of Notre Dame. All Rights Reserved.
1 > /* Copyright (c) 2008, 2009, 2010 The University of Notre Dame. All Rights Reserved.
2   *
3   * The University of Notre Dame grants you ("Licensee") a
4   * non-exclusive, royalty free, license to use, modify and
# Line 90 | Line 90 | void ConvexHull::computeHull(std::vector<StuntDouble*>
90    facetT *facet;
91    setT *vertices;
92    int curlong, totlong;
93 +  pointT *intPoint;
94    
95    std::vector<double> ptArray(numpoints*dim_);
96  
# Line 207 | Line 208 | void ConvexHull::computeHull(std::vector<StuntDouble*>
208    } //qh_new_qhull
209  
210   #endif
211 <
211 >  intPoint = qh interior_point;
212 >  RealType calcvol = 0.0;
213    FORALLfacets {  
214      Triangle face;
215 <
215 >    //Qhull sets the unit normal in facet->normal
216      Vector3d V3dNormal(facet->normal[0], facet->normal[1], facet->normal[2]);
217 <    face.setNormal(V3dNormal);
217 >    face.setUnitNormal(V3dNormal);
218      
219      RealType faceArea = qh_facetarea(facet);
220      face.setArea(faceArea);
# Line 234 | Line 236 | void ConvexHull::computeHull(std::vector<StuntDouble*>
236        p[ver][0] = vertex->point[0];
237        p[ver][1] = vertex->point[1];
238        p[ver][2] = vertex->point[2];
237      
239        Vector3d vel;
240        RealType mass;
241  
# Line 249 | Line 250 | void ConvexHull::computeHull(std::vector<StuntDouble*>
250  
251        int localID = id - displacements[myrank];
252  
253 <      if (localID >= 0 && localID < hullSitesOnProc[myrank])
253 >
254 >      if (localID >= 0 && localID < hullSitesOnProc[myrank]){
255          face.addVertexSD(bodydoubles[indexMap[localID]]);
256 <      
256 >      }else{
257 >        face.addVertexSD(NULL);
258 >      }
259   #else
260        vel = bodydoubles[id]->getVel();
261        mass = bodydoubles[id]->getMass();
262        face.addVertexSD(bodydoubles[id]);      
263 +
264 +
265   #endif
266          
267        faceVel = faceVel + vel;
# Line 266 | Line 272 | void ConvexHull::computeHull(std::vector<StuntDouble*>
272      face.addVertices(p[0], p[1], p[2]);
273      face.setFacetMass(faceMass);
274      face.setFacetVelocity(faceVel/3.0);
275 +    /*
276 +    RealType comparea = face.computeArea();
277 +    realT calcarea = qh_facetarea (facet);
278 +    Vector3d V3dCompNorm = -face.computeUnitNormal();
279 +    RealType thisOffset = ((0.0-p[0][0])*V3dCompNorm[0] + (0.0-p[0][1])*V3dCompNorm[1] + (0.0-p[0][2])*V3dCompNorm[2]);
280 +    RealType dist = facet->offset + intPoint[0]*V3dNormal[0] + intPoint[1]*V3dNormal[1] + intPoint[2]*V3dNormal[2];
281 +    std::cout << "facet offset and computed offset: " << facet->offset << "  " << thisOffset <<  std::endl;
282 +    calcvol +=  -dist*comparea/qh hull_dim;
283 +    */
284      Triangles_.push_back(face);
285      qh_settempfree(&vertices);      
286  
# Line 274 | Line 289 | void ConvexHull::computeHull(std::vector<StuntDouble*>
289    qh_getarea(qh facet_list);
290    volume_ = qh totvol;
291    area_ = qh totarea;
292 <
292 >  //  std::cout << "My volume is: " << calcvol << " qhull volume is:" << volume_ << std::endl;
293    qh_freeqhull(!qh_ALL);
294    qh_memfreeshort(&curlong, &totlong);
295    if (curlong || totlong)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines