1#ifndef SUBDOMAIN_NODES_HPP
2#define SUBDOMAIN_NODES_HPP
4#include <boost/fusion/container/vector.hpp>
5#include <boost/fusion/include/at_c.hpp>
6#include "memory_ly/Encap.hpp"
30constexpr unsigned int nm_v_x = 0;
31constexpr unsigned int nm_v_migration = 1;
32constexpr unsigned int nm_v_computation = 2;
33constexpr unsigned int nm_v_global_id = 3;
34constexpr unsigned int nm_v_id = 4;
35constexpr unsigned int nm_v_sub_id = 5;
36constexpr unsigned int nm_v_proc_id = 6;
38template<
unsigned int dim>
42 typedef boost::fusion::vector<float[3], size_t, size_t, size_t, size_t, long int, size_t>
type;
50 static const std::string name[];
57 static const unsigned int x = 0;
65 static const unsigned int id = 4;
67 static const unsigned int sub_id = 5;
82 for (
size_t i = 0 ; i < dim ; i++)
83 {boost::fusion::at_c<0>(
data)[i] = boost::fusion::at_c<0>(p.
data)[i];}
84 boost::fusion::at_c<1>(
data) = boost::fusion::at_c<1>(p.
data);
85 boost::fusion::at_c<2>(
data) = boost::fusion::at_c<2>(p.
data);
86 boost::fusion::at_c<3>(
data) = boost::fusion::at_c<3>(p.
data);
87 boost::fusion::at_c<4>(
data) = boost::fusion::at_c<4>(p.
data);
88 boost::fusion::at_c<5>(
data) = boost::fusion::at_c<5>(p.
data);
89 boost::fusion::at_c<6>(
data) = boost::fusion::at_c<6>(p.
data);
99 for (
size_t i = 0 ; i < dim ; i++)
100 {boost::fusion::at_c<0>(
data)[i] = boost::fusion::at_c<0>(p.data)[i];}
101 boost::fusion::at_c<1>(
data) = p.template get<1>();
102 boost::fusion::at_c<2>(
data) = p.template get<2>();
103 boost::fusion::at_c<3>(
data) = p.template get<3>();
104 boost::fusion::at_c<4>(
data) = p.template get<4>();
105 boost::fusion::at_c<5>(
data) = p.template get<5>();
106 boost::fusion::at_c<6>(
data) = p.template get<6>();
111 template<
unsigned int id>
inline auto get() ->
decltype(boost::fusion::at_c < id > (
data))
113 return boost::fusion::at_c<id>(
data);
116 template<
unsigned int id>
inline auto get() const -> const decltype(boost::fusion::at_c <
id > (
data))
118 return boost::fusion::at_c<id>(
data);
121 static bool noPointers()
135 typedef boost::fusion::vector<size_t, size_t, size_t>
type;
140 static const std::string name[];
148 static const unsigned int srcgid = 1;
149 static const unsigned int dstgid = 2;
160 boost::fusion::at_c<0>(
data) = p.template get<0>();
161 boost::fusion::at_c<1>(
data) = p.template get<1>();
162 boost::fusion::at_c<2>(
data) = p.template get<2>();
166 template<
unsigned int id>
inline auto get() ->
decltype(boost::fusion::at_c < id > (
data))
168 return boost::fusion::at_c<id>(
data);
171 static bool noPointers()
186 typedef boost::fusion::vector<size_t, size_t>
type;
188 typedef float s_type;
193 static const std::string name[];
201 static const unsigned int id = 0;
216 boost::fusion::at_c<0>(
data) = p.template get<0>();
217 boost::fusion::at_c<1>(
data) = p.template get<1>();
220 static inline bool noPointers()
236 typedef boost::fusion::vector<>
type;
248 static const std::string name[];
251 static inline bool noPointers()
sub-domain edge graph node
static const unsigned int communication
computation property id in boost::fusion::vector
boost::fusion::vector< size_t, size_t, size_t > type
The node contain 3 unsigned long integer for comunication computation and memory.
static const unsigned int max_prop
total number of properties boost::fusion::vector
boost::fusion::vector type
The node contain 3 unsigned long integer for comunication computation and memory.
static const unsigned int max_prop
total number of properties
Reduced sub-domain vertex graph node.
static const unsigned int max_prop
total number of properties
boost::fusion::vector< size_t, size_t > type
The node contain 3 unsigned long integer for comunication computation and memory.
static const unsigned int sub_id
partition id in the boost::fusion::vector
nm_part_v()
default constructor
static const unsigned int sub_id
sub_id property id in boost::fusion::vector
static const unsigned int proc_id
proc_id property id in boost::fusion::vector
static const unsigned int computation
computation property id in boost::fusion::vector
static const unsigned int migration
migration property id in boost::fusion::vector
float s_type
type of the positional field
static const unsigned int x
pos property id in boost::fusion::vector
boost::fusion::vector< float[3], size_t, size_t, size_t, size_t, long int, size_t > type
The node contain 3 unsigned long integer for communication computation memory and id.
nm_v()
default constructor
static const unsigned int global_id
global_id property id in boost::fusion::vector
static const unsigned int max_prop
total number of properties boost::fusion::vector