OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
Decomposition.hpp
1#include "Space/SpaceBox.hpp"
2
3#ifndef DECOMPOSITION_HPP_
4#define DECOMPOSITION_HPP_
5
12template <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
32template<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
This class define the domain decomposition interface.
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.
virtual dataDiv< T > divide()
divide the dataset from internal part and border
virtual size_t getNHyperCube(size_t id)
Get the number of hyper-cube the space id is divided into.
virtual ~Decomposition()
destructor
class that store Internal part external and border part of a dataset
boost::shared_ptr< T > inte
internal part of your data
boost::shared_ptr< T > ext
external part of your data
boost::shared_ptr< T > bord
Border part of the data.