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 "Grid/Encap.hpp"
37 typedef boost::fusion::vector<float[3], size_t, size_t, size_t, size_t, long int, size_t>
type;
45 static const std::string name[];
52 static const unsigned int x = 0;
60 static const unsigned int id = 4;
62 static const unsigned int sub_id = 5;
77 boost::fusion::at_c<0>(
data)[0] = boost::fusion::at_c<0>(p.
data)[0];
78 boost::fusion::at_c<0>(
data)[1] = boost::fusion::at_c<0>(p.
data)[1];
79 boost::fusion::at_c<0>(
data)[2] = boost::fusion::at_c<0>(p.
data)[2];
80 boost::fusion::at_c<1>(
data) = boost::fusion::at_c<1>(p.
data);
81 boost::fusion::at_c<2>(
data) = boost::fusion::at_c<2>(p.
data);
82 boost::fusion::at_c<3>(
data) = boost::fusion::at_c<3>(p.
data);
83 boost::fusion::at_c<4>(
data) = boost::fusion::at_c<4>(p.
data);
84 boost::fusion::at_c<5>(
data) = boost::fusion::at_c<5>(p.
data);
85 boost::fusion::at_c<6>(
data) = boost::fusion::at_c<6>(p.
data);
95 boost::fusion::at_c<0>(
data)[0] = p.template get<0>()[0];
96 boost::fusion::at_c<0>(
data)[1] = p.template get<0>()[1];
97 boost::fusion::at_c<0>(
data)[2] = p.template get<0>()[2];
98 boost::fusion::at_c<1>(
data) = p.template get<1>();
99 boost::fusion::at_c<2>(
data) = p.template get<2>();
100 boost::fusion::at_c<3>(
data) = p.template get<3>();
101 boost::fusion::at_c<4>(
data) = p.template get<4>();
102 boost::fusion::at_c<5>(
data) = p.template get<5>();
103 boost::fusion::at_c<6>(
data) = p.template get<6>();
108 template<
unsigned int id>
inline auto get() -> decltype(boost::fusion::at_c < id > (
data))
110 return boost::fusion::at_c<id>(
data);
113 template<
unsigned int id>
inline auto get()
const ->
const decltype(boost::fusion::at_c < id > (
data))
115 return boost::fusion::at_c<id>(
data);
118 static bool noPointers()
132 typedef boost::fusion::vector<size_t, size_t, size_t>
type;
137 static const std::string name[];
145 static const unsigned int srcgid = 1;
146 static const unsigned int dstgid = 2;
157 boost::fusion::at_c<0>(
data) = p.template get<0>();
158 boost::fusion::at_c<1>(
data) = p.template get<1>();
159 boost::fusion::at_c<2>(
data) = p.template get<2>();
163 template<
unsigned int id>
inline auto get() -> decltype(boost::fusion::at_c < id > (
data))
165 return boost::fusion::at_c<id>(
data);
168 static bool noPointers()
183 typedef boost::fusion::vector<size_t, size_t>
type;
185 typedef float s_type;
190 static const std::string name[];
198 static const unsigned int id = 0;
213 boost::fusion::at_c<0>(
data) = p.template get<0>();
214 boost::fusion::at_c<1>(
data) = p.template get<1>();
217 static inline bool noPointers()
233 typedef boost::fusion::vector<>
type;
245 static const std::string name[];
248 static inline bool noPointers()
nm_v()
default constructor
Reduced sub-domain vertex graph node.
static const unsigned int communication
computation property id in boost::fusion::vector
boost::fusion::vector< 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
nm_part_v()
default constructor
static const unsigned int max_prop
total number of properties
static const unsigned int global_id
global_id property id in boost::fusion::vector
sub-domain edge graph node
static const unsigned int computation
computation property id in boost::fusion::vector
static const unsigned int sub_id
sub_id property id in boost::fusion::vector
float s_type
type of the positional field
boost::fusion::vector 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
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
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...
static const unsigned int migration
migration property id in boost::fusion::vector
static const unsigned int proc_id
proc_id property id in boost::fusion::vector
static const unsigned int max_prop
total number of properties boost::fusion::vector