ProcessorUpdate.hpp
Go to the documentation of this file.
1 
5 #ifndef PROCUPDATE
6 #define PROCUPDATE 1
7 
8 #ifdef _MSC_VER
9 #define _USE_MATH_DEFINES
10 #endif // _MSC_VER
11 #include <cmath>
12 #include <algorithm>
13 #include "../newtonian/two_dimensional/OuterBoundary.hpp"
14 #include "../tessellation/tessellation.hpp"
15 
18 {
19 public:
20 #ifdef RICH_MPI
21 
26  virtual void Update(Tessellation &tproc,Tessellation const& tlocal)const=0;
27 #endif
28  virtual ~ProcessorUpdate(void);
30 #ifdef RICH_MPI
31 
37  double GetLoadImbalance(Tessellation const& tlocal,int &total)const;
38 #endif
39 };
40 
41 #endif //PROCUPDATE
Abstract class for tessellation.
Updates the positions of the processes.
double GetLoadImbalance(Tessellation const &tlocal, int &total) const
Calcualtes the load imbalance as max(number of points per proc)/(avg per proc)
virtual ~ProcessorUpdate(void)
virtual destructor
virtual void Update(Tessellation &tproc, Tessellation const &tlocal) const =0
Moves the processor tessellation.