Tessellation3D.hpp
Go to the documentation of this file.
1 
6 #ifndef TESSELLATION3D_HPP
7 #define TESSELLATION3D_HPP 1
8 
9 #include <vector>
10 #include "HilbertOrder3D.hpp"
11 #include "Face.hpp"
12 #include "OuterBoundary3D.hpp"
13 
14 using std::vector;
15 
20 {
21 public:
22 
27  virtual void Initialise(vector<Vector3D> const& points, OuterBoundary3D const* bc) = 0;
28 
33  virtual void Update(vector<Vector3D> const& points) = 0;
34 
35 
39  virtual size_t GetPointNo(void) const = 0;
40 
45  virtual Vector3D GetMeshPoint(size_t index) const = 0;
46 
51  virtual Vector3D const& GetCellCM(size_t index) const = 0;
52 
56  virtual size_t GetTotalFacesNumber(void) const = 0;
57 
62  virtual Face const& GetFace(size_t index) const = 0;
63 
68  virtual double GetWidth(size_t index) const = 0;
69 
74  virtual double GetVolume(size_t index) const = 0;
75 
80  virtual vector<size_t>const& GetCellFaces(size_t index) const = 0;
81 
86  virtual vector<Vector3D>& GetMeshPoints(void) = 0;
87 
94  virtual vector<size_t> GetNeighbors(size_t index)const = 0;
95 
100  virtual Tessellation3D* clone(void) const = 0;
101 
103  virtual ~Tessellation3D(void);
104 
110  virtual bool NearBoundary(size_t index) const = 0;
111 
117  virtual bool BoundaryFace(size_t index) const = 0;
118 
123  virtual vector<vector<size_t> >& GetDuplicatedPoints(void) = 0;
128  virtual vector<vector<size_t> >const& GetDuplicatedPoints(void)const = 0;
133  virtual size_t GetTotalPointNumber(void)const = 0;
134 
139  virtual vector<Vector3D>& GetAllCM(void) = 0;
140 
146  virtual void GetNeighborNeighbors(vector<size_t> &result,size_t point)const = 0;
147 
148 
154  virtual Vector3D Normal(size_t faceindex)const=0;
155 
161  virtual bool IsGhostPoint(size_t index)const=0;
162 
171  virtual Vector3D CalcFaceVelocity(size_t p0,size_t p1,Vector3D const& v0,
172  Vector3D const& v1)const=0;
173 };
174 
175 #endif // TESSELLATION3D_HPP
virtual double GetWidth(size_t index) const =0
Returns the effective width of a cell.
virtual bool NearBoundary(size_t index) const =0
Returns if the cell is adjacent to a boundary.
virtual void Update(vector< Vector3D > const &points)=0
Update the tessellation.
Abstract class for tessellation in 3D.
virtual double GetVolume(size_t index) const =0
Returns the volume of a cell.
virtual Vector3D CalcFaceVelocity(size_t p0, size_t p1, Vector3D const &v0, Vector3D const &v1) const =0
Calculates the velocity of a face.
virtual Vector3D Normal(size_t faceindex) const =0
Returns a vector normal to the face whose magnitude is the seperation between the neighboring points...
Hilbert 3D-space filling curve.
Face between cells.
virtual size_t GetTotalPointNumber(void) const =0
Returns the total number of points (including ghost)
virtual bool IsGhostPoint(size_t index) const =0
Checks if a point is a ghost point or not.
Abstract class for geometric boundary conditions for the tessellation.
virtual void Initialise(vector< Vector3D > const &points, OuterBoundary3D const *bc)=0
Initialises the tessellation.
virtual ~Tessellation3D(void)
Virtual destructor.
virtual vector< vector< size_t > > & GetDuplicatedPoints(void)=0
Returns the indeces of the points that where sent to other processors as ghost points (or to same cpu...
virtual Vector3D GetMeshPoint(size_t index) const =0
Returns Position of mesh generating point.
3D Mathematical vector
Definition: Vector3D.hpp:15
virtual vector< size_t > GetNeighbors(size_t index) const =0
Returns a list of the neighbors of a cell.
Outer Boundary Conditions.
virtual Face const & GetFace(size_t index) const =0
Returns Face (interface between cells)
virtual Tessellation3D * clone(void) const =0
Cloning function.
virtual size_t GetPointNo(void) const =0
Get Total number of mesh generating points.
virtual bool BoundaryFace(size_t index) const =0
Returns if the face is a boundary one.
virtual vector< Vector3D > & GetMeshPoints(void)=0
Returns a reference to the point vector.
virtual Vector3D const & GetCellCM(size_t index) const =0
Returns Position of Cell&#39;s Center of Mass.
virtual size_t GetTotalFacesNumber(void) const =0
Returns the total number of faces.
virtual vector< Vector3D > & GetAllCM(void)=0
Returns the center of masses of the cells.
Interface between two cells.
Definition: Face.hpp:15
virtual vector< size_t > const & GetCellFaces(size_t index) const =0
Returns the indeces of a cell&#39;s Faces.
virtual void GetNeighborNeighbors(vector< size_t > &result, size_t point) const =0
Returns the neighbors and neighbors of the neighbors of a cell.