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

Comparing trunk/src/math/ConvexHull.hpp (file contents):
Revision 1137 by chuckv, Tue May 29 22:50:14 2007 UTC vs.
Revision 1307 by chuckv, Mon Oct 20 19:36:32 2008 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 2006 The University of Notre Dame. All Rights Reserved.
1 > /* Copyright (c) 2008 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 40 | Line 40
40   *
41   *  ConvexHull.hpp
42   *
43 < *  Purpose: To calculate convexhull, hull volume and radius
44 < *  using the CGAL library.
43 > *  Purpose: To calculate convexhull, hull volume using the QuickHull algorithm provided by QHull.
44   *
45   *  Created by Charles F. Vardeman II on 11 Dec 2006.
46   *  @author  Charles F. Vardeman II
47 < *  @version $Id: ConvexHull.hpp,v 1.2 2007-05-29 22:50:14 chuckv Exp $
47 > *  @version $Id: ConvexHull.hpp,v 1.14 2008-10-20 19:36:32 chuckv Exp $
48   *
49   */
50  
# Line 53 | Line 52
52   #define MATH_CONVEXHULL_HPP_
53  
54   #include "math/Vector3.hpp"
55 + #include "config.h"
56 + #include "math/Hull.hpp"
57 + #include "math/Triangle.hpp"
58  
59   #include <cassert>
60   #include <vector>
61   #include <string>
62   extern "C"
63   {
64 + #if defined(HAVE_QHULL)
65   #include <qhull/qhull.h>
66   #include <qhull/mem.h>
67   #include <qhull/qset.h>
# Line 67 | Line 70 | extern "C"
70   #include <qhull/poly.h>
71   #include <qhull/io.h>
72   #include <qhull/stat.h>
73 + #endif
74   }
75 + #ifdef IS_MPI
76 + #include <mpi.h>
77 + #endif
78  
79  
80 + namespace oopse {
81 +  class ConvexHull : public Hull {
82 +  public:
83 +    ConvexHull();
84  
85 < namespace oopse
86 <  {
85 >    virtual ~ConvexHull(){};
86 >    void computeHull(std::vector<StuntDouble*> bodydoubles);
87 >    RealType getArea(){return area_;} //Total area of Hull
88 >    int getNs(){return Ns_;}  //Number of Surface Atoms
89 >    RealType getVolume(){return volume_;} //Total Volume inclosed by Hull
90 >    std::vector< StuntDouble* > getSurfaceAtoms(){return surfaceSDs_;} //Returns a list of surface atoms
91 >    std::vector<Triangle* > getMesh(){return Triangles_;}
92 >    int getNMeshElements() {return nTriangles_;}
93 >    void printHull(const std::string& geomFileName);
94 >  protected:
95 >    double volume_;
96 >    double area_;
97 >    int dim_;
98 >    int Ns_;
99 >    int nTriangles_;
100 >    std::vector<StuntDouble*> surfaceSDs_;
101 >    const std::string options_;
102  
77  class ConvexHull
78    {
79
80    public:
81      ConvexHull();
82      ~ConvexHull();
83      bool genHull(std::vector<Vector3d> pos);
84      std::vector<Vector3d> getHull();
85      RealType getVolume();
86      RealType getRadius();
87      RealType getInscribedRadius();
88      void geomviewHull(const std::string& geomFileName);
103      private:
104 <                
91 <                double volume_;
104 >    std::vector<Triangle*> Triangles_;
105  
106 <    }
107 <  ;
106 > #ifdef IS_MPI
107 >    int* NstoProc_;
108 >    int* displs_;
109 >    int Nsglobal_;
110 >    int nproc_;
111 >    int myrank_;
112 >    struct surfacePt_{
113 >        double x,y,z;
114 >    };
115  
116 +    MPI::Datatype surfacePtType;
117 +    std::vector<surfacePt_> surfacePtsLocal_;
118 +    std::vector<surfacePt_> surfacePtsGlobal_;
119 + #endif
120  
121 +  };
122   }
123  
99
124   #endif /*MATH_CONVEXHULL_HPP_*/

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines