OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
grid_dist_testing.hpp
1 /*
2  * grid_dist_testing.hpp
3  *
4  * Created on: Oct 28, 2015
5  * Author: i-bird
6  */
7 
8 #ifndef OPENFPM_NUMERICS_SRC_UTIL_GRID_DIST_TESTING_HPP_
9 #define OPENFPM_NUMERICS_SRC_UTIL_GRID_DIST_TESTING_HPP_
10 
11 #include "Grid/grid_dist_key.hpp"
12 #include "Grid/grid_dist_key.hpp"
13 #include "Grid/map_grid.hpp"
14 
15 template<unsigned int dim>
17 {
19 
20 public:
21 
27  grid_dist_testing(const size_t (& g_sz)[dim])
28  :grid_test(g_sz)
29  {
30  grid_test.setMemory();
31 
32  // We fill the testing map
33 
34  auto dom = grid_test.getIterator();
35  const auto & gs = grid_test.getGrid();
36 
37  while (dom.isNext())
38  {
39  auto key = dom.get();
40 
41  grid_test.template get<0>(key) = gs.LinId(key);
42 
43  ++dom;
44  }
45  }
46 
52  template <unsigned int p> size_t get(const grid_dist_key_dx<dim> & key) const
53  {
54  if (p != 0)
55  std::cerr << "Error: " << __FILE__ << ":" << __LINE__ << " mapping grid is suppose to have only one scalar size_t \n";
56 
57  return grid_test.template get<0>(key.getKey());
58  }
59 
66  {
67  return key.getKey();
68  }
69 };
70 
71 
72 #endif /* OPENFPM_NUMERICS_SRC_UTIL_GRID_DIST_TESTING_HPP_ */
base_key getKey() const
Get the key.
size_t get(const grid_dist_key_dx< dim > &key) const
Get the element at position key.
grid_dist_testing(const size_t(&g_sz)[dim])
It create a test map suitable for testing.
grid_key_dx< dim > getGKey(const grid_dist_key_dx< dim > &key) const
Return the global key.