periodic_edge_velocities.cpp
1 #include "periodic_edge_velocities.hpp"
2 
3 PeriodicEdgeVelocities::PeriodicEdgeVelocities(void) {}
4 
5 vector<Vector2D> PeriodicEdgeVelocities::operator()
6  (const Tessellation& tess,
7  const vector<Vector2D>& point_velocities) const
8 {
9  const vector<Edge>& edge_list = tess.getAllEdges();
10  vector<Vector2D> res(edge_list.size());
11  for(size_t i=0;i<res.size();++i){
12  const Edge& edge = edge_list.at(i);
13  res.at(i) = tess.CalcFaceVelocity
14  (point_velocities.at(static_cast<size_t>(tess.GetOriginalIndex(edge.neighbors.first))),
15  point_velocities.at(static_cast<size_t>(tess.GetOriginalIndex(edge.neighbors.second))),
16  tess.GetMeshPoint(edge.neighbors.first),
17  tess.GetMeshPoint(edge.neighbors.second),
18  calc_centroid(edge));
19  }
20  return res;
21 }
Abstract class for tessellation.
virtual int GetOriginalIndex(int point) const
Returns the original index of the duplicated point.
Definition: tessellation.cpp:5
Interface between two cells.
Definition: Edge.hpp:13
virtual Vector2D GetMeshPoint(int index) const =0
Returns Position of mesh generating point.
virtual const vector< Edge > & getAllEdges(void) const =0
Returns reference to the list of all edges.
std::pair< int, int > neighbors
Neighboring cells.
Definition: Edge.hpp:21
Vector3D calc_centroid(const Face &face)
Calculates the centroid of aa face.
Definition: Face.cpp:32
virtual Vector2D CalcFaceVelocity(Vector2D wl, Vector2D wr, Vector2D rL, Vector2D rR, Vector2D f) const =0
Calculates the velocity of a single edge.