OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
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
15template<unsigned int dim>
17{
19
20public:
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_ */
Grid key for a distributed grid.
base_key getKey() const
Get the key.
grid_dist_testing(const size_t(&g_sz)[dim])
It create a test map suitable for testing.
size_t get(const grid_dist_key_dx< dim > &key) const
Get the element at position key.
grid_key_dx< dim > getGKey(const grid_dist_key_dx< dim > &key) const
Return the global key.
grid_key_dx is the key to access any element in the grid
Definition grid_key.hpp:19