OpenFPM_pdata  1.1.0
Project that contain the implementation of distributed structures
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Pages
Decomposition.hpp
1 #include "Space/SpaceBox.hpp"
2 
3 #ifndef DECOMPOSITION_HPP_
4 #define DECOMPOSITION_HPP_
5 
12 template <typename T> class dataDiv
13 {
15  boost::shared_ptr<T> bord;
17  boost::shared_ptr<T> inte;
19  boost::shared_ptr<T> ext;
20 };
21 
32 template<typename T, typename S>
34 {
41  virtual T getInternal();
42 
43 
49  virtual T getBorder();
50 
56  virtual T getExternal();
57 
59  virtual dataDiv<T> divide();
60 
62  virtual size_t getNHyperCube(size_t id);
63 
65  virtual std::vector<T> & getHyperCube(size_t id, size_t id_c);
66 
68  virtual ~Decomposition(){}
69 };
70 
71 #endif
virtual T getExternal()
virtual T getBorder()
virtual std::vector< T > & getHyperCube(size_t id, size_t id_c)
Get the hyper-cube margins.
virtual T getInternal()
The the internal part of the data set, or the data that does not depend from the ghosts layers...
class that store Internal part external and border part of a dataset
virtual size_t getNHyperCube(size_t id)
Get the number of hyper-cube the space id is divided into.
boost::shared_ptr< T > ext
external part of your data
This class define the domain decomposition interface.
virtual dataDiv< T > divide()
divide the dataset from internal part and border
boost::shared_ptr< T > inte
internal part of your data
boost::shared_ptr< T > bord
Border part of the data.
virtual ~Decomposition()
destructor