8 #ifndef VTKWRITER_UNIT_TESTS_HPP_ 
    9 #define VTKWRITER_UNIT_TESTS_HPP_ 
   11 #include "data_type/aggregate.hpp" 
   13 #include "VTKWriter.hpp" 
   14 #include "util/SimpleRNG.hpp" 
   16 BOOST_AUTO_TEST_SUITE( vtk_writer_test )
 
   24     typedef boost::fusion::vector<float,float,float,float,size_t,double,unsigned char,long int> 
type;
 
   32         static const std::string name[];
 
   39     static const unsigned int x = 0;
 
   41     static const unsigned int y = 1;
 
   43     static const unsigned int z = 2;
 
   45     static const unsigned int prp1 = 3;
 
   47     static const unsigned int prp2 = 4;
 
   49     static const unsigned int prp3 = 5;
 
   51     static const unsigned int prp4 = 6;
 
   53     static const unsigned int prp5 = 7;
 
   56     static const unsigned int max_prop = 8;
 
   67     static inline bool noPointers()
 
   81         boost::fusion::at_c<vertex::x>(data) = x;
 
   82         boost::fusion::at_c<vertex::y>(data) = y;
 
   83         boost::fusion::at_c<vertex::z>(data) = z;
 
   87 const std::string vertex::attributes::name[] = {
"x",
"y",
"z",
"prp1",
"prp2",
"prp3",
"prp4",
"prp5"};
 
   92     typedef boost::fusion::vector<float[3],size_t,double> 
type;
 
  100         static const std::string name[];
 
  107     static const unsigned int x = 0;
 
  108     static const unsigned int prp1 = 1;
 
  109     static const unsigned int prp2 = 2;
 
  123     static inline bool noPointers()
 
  137         boost::fusion::at_c<vertex::x>(
data)[0] = x;
 
  138         boost::fusion::at_c<vertex::x>(
data)[1] = y;
 
  139         boost::fusion::at_c<vertex::x>(
data)[2] = z;
 
  146 const std::string vertex2::attributes::name[] = {
"x",
"prp1",
"prp2"};
 
  150 BOOST_AUTO_TEST_CASE( vtk_writer_use_graph3D )
 
  152     Vcluster & v_cl = create_vcluster();
 
  225     vtk.write(
"vtk_graph_v2.vtk");
 
  229     bool test = compare(
"vtk_graph_v2.vtk",
"test_data/vtk_graph_v2_test.vtk");
 
  230     BOOST_REQUIRE_EQUAL(
true,test);
 
  233 BOOST_AUTO_TEST_CASE( vtk_writer_use_graph3D_edge )
 
  235     Vcluster & v_cl = create_vcluster();
 
  308     vtk.write(
"vtk_graph_v4.vtk");
 
  312     bool test = compare(
"vtk_graph_v4.vtk",
"test_data/vtk_graph_v4_test.vtk");
 
  313     BOOST_REQUIRE_EQUAL(
true,test);
 
  319     typedef boost::fusion::vector<float[2],size_t,double> 
type;
 
  327         static const std::string name[];
 
  334     static const unsigned int x = 0;
 
  335     static const unsigned int prp1 = 1;
 
  336     static const unsigned int prp2 = 2;
 
  350     static inline bool noPointers()
 
  362         boost::fusion::at_c<vertex::x>(
data)[0] = x;
 
  363         boost::fusion::at_c<vertex::x>(
data)[1] = y;
 
  370 const std::string vertex3::attributes::name[] = {
"x",
"prp1",
"prp2"};
 
  372 BOOST_AUTO_TEST_CASE( vtk_writer_use_graph2D )
 
  374     Vcluster & v_cl = create_vcluster();
 
  400     vtk.write(
"vtk_graph_v3.vtk");
 
  404     bool test = compare(
"vtk_graph_v3.vtk",
"test_data/vtk_graph_v3_test.vtk");
 
  405     BOOST_REQUIRE_EQUAL(
true,test);
 
  408 BOOST_AUTO_TEST_CASE( vtk_writer_use_graph)
 
  410     Vcluster & v_cl = create_vcluster();
 
  417     std::cout << 
"Graph unit test start" << 
"\n";
 
  485     vtk.write(
"vtk_graph.vtk");
 
  489     bool test = compare(
"vtk_graph.vtk",
"test_data/vtk_graph_test.vtk");
 
  490     BOOST_REQUIRE_EQUAL(
true,test);
 
  493 BOOST_AUTO_TEST_CASE( vtk_writer_use_vector_box)
 
  495     Vcluster & v_cl = create_vcluster();
 
  513     vtk_box.write(
"vtk_box.vtk");
 
  516     bool test = compare(
"vtk_box.vtk",
"test_data/vtk_box_test.vtk");
 
  517     BOOST_REQUIRE_EQUAL(test,
true);
 
  532     vtk_box2.write(
"vtk_box_3D.vtk");
 
  535     test = compare(
"vtk_box_3D.vtk",
"test_data/vtk_box_3D_test.vtk");
 
  536     BOOST_REQUIRE_EQUAL(test,
true);
 
  551     vtk_box3.write(
"vtk_box_3D_2.vtk");
 
  554     test = compare(
"vtk_box_3D_2.vtk",
"test_data/vtk_box_3D_2_test.vtk");
 
  555     BOOST_REQUIRE_EQUAL(test,
true);
 
  563 template<
typename gr
id_type> 
void fill_grid_some_data(
grid_type & g)
 
  567     auto it = g.getIterator();
 
  571         g.template get<p::x>(it.get()) = it.
get().get(0);
 
  573         {g.template get<p::y>(it.get()) = it.
get().get(1);}
 
  575         {g.template get<p::y>(it.get()) = 0.0;}
 
  576         g.template get<p::z>(it.get()) = 0;
 
  577         g.template get<p::s>(it.get()) = 1.0;
 
  578         g.template get<p::v>(it.get())[0] = g.getGrid().LinId(it.get());
 
  579         g.template get<p::v>(it.get())[1] = g.getGrid().LinId(it.get());
 
  580         g.template get<p::v>(it.get())[2] = g.getGrid().LinId(it.get());
 
  582         g.template get<p::t>(it.get())[0][0] = g.getGrid().LinId(it.get());
 
  583         g.template get<p::t>(it.get())[0][1] = g.getGrid().LinId(it.get());
 
  584         g.template get<p::t>(it.get())[0][2] = g.getGrid().LinId(it.get());
 
  585         g.template get<p::t>(it.get())[1][0] = g.getGrid().LinId(it.get());
 
  586         g.template get<p::t>(it.get())[1][1] = g.getGrid().LinId(it.get());
 
  587         g.template get<p::t>(it.get())[1][2] = g.getGrid().LinId(it.get());
 
  588         g.template get<p::t>(it.get())[2][0] = g.getGrid().LinId(it.get());
 
  589         g.template get<p::t>(it.get())[2][1] = g.getGrid().LinId(it.get());
 
  590         g.template get<p::t>(it.get())[2][2] = g.getGrid().LinId(it.get());
 
  605     auto it = g.getIterator();
 
  609         g.template get<p::x>(it.get()) = it.
get().get(0);
 
  610         g.template get<p::y>(it.get()) = it.
get().get(1);
 
  611         g.template get<p::z>(it.get()) = 0;
 
  612         g.template get<p::s>(it.get()) = 1.0;
 
  613         g.template get<p::v>(it.get())[0] = g.getGrid().LinId(it.get());
 
  614         g.template get<p::v>(it.get())[1] = g.getGrid().LinId(it.get());
 
  615         g.template get<p::v>(it.get())[2] = g.getGrid().LinId(it.get());
 
  617         g.template get<p::t>(it.get())[0][0] = g.getGrid().LinId(it.get());
 
  618         g.template get<p::t>(it.get())[0][1] = g.getGrid().LinId(it.get());
 
  619         g.template get<p::t>(it.get())[0][2] = g.getGrid().LinId(it.get());
 
  620         g.template get<p::t>(it.get())[1][0] = g.getGrid().LinId(it.get());
 
  621         g.template get<p::t>(it.get())[1][1] = g.getGrid().LinId(it.get());
 
  622         g.template get<p::t>(it.get())[1][2] = g.getGrid().LinId(it.get());
 
  623         g.template get<p::t>(it.get())[2][0] = g.getGrid().LinId(it.get());
 
  624         g.template get<p::t>(it.get())[2][1] = g.getGrid().LinId(it.get());
 
  625         g.template get<p::t>(it.get())[2][2] = g.getGrid().LinId(it.get());
 
  639     auto it = g.getIterator();
 
  643         g.template get<p::x>(it.get()) = it.
get().get(0);
 
  644         g.template get<p::y>(it.get()) = it.
get().get(1);
 
  645         g.template get<p::z>(it.get()) = 0;
 
  646         g.template get<p::s>(it.get()) = 1.0;
 
  652 BOOST_AUTO_TEST_CASE( vtk_writer_use_grids)
 
  654     Vcluster & v_cl = create_vcluster();
 
  684         fill_grid_some_data(g1);
 
  687         fill_grid_some_data(g2);
 
  690         fill_grid_some_data(g3);
 
  693         fill_grid_some_data(g4);
 
  697         vtk_g.add(g1,offset1,spacing1,d1);
 
  698         vtk_g.add(g2,offset2,spacing2,d2);
 
  699         vtk_g.add(g3,offset3,spacing3,d3);
 
  700         vtk_g.add(g4,offset4,spacing4,d4);
 
  703         vtk_g.write(
"vtk_grids_1d.vtk",prp_names);
 
  708         bool test = compare(
"vtk_grids_1d.vtk",
"test_data/vtk_grids_test_1d.vtk");
 
  709         BOOST_REQUIRE_EQUAL(test,
true);
 
  736         size_t sz[] = {16,16};
 
  739         fill_grid_some_data(g1);
 
  742         fill_grid_some_data(g2);
 
  745         fill_grid_some_data(g3);
 
  748         fill_grid_some_data(g4);
 
  752         vtk_g.add(g1,offset1,spacing1,d1);
 
  753         vtk_g.add(g2,offset2,spacing2,d2);
 
  754         vtk_g.add(g3,offset3,spacing3,d3);
 
  755         vtk_g.add(g4,offset4,spacing4,d4);
 
  758         vtk_g.write(
"vtk_grids.vtk",prp_names);
 
  763         bool test = compare(
"vtk_grids.vtk",
"test_data/vtk_grids_test.vtk");
 
  764         BOOST_REQUIRE_EQUAL(test,
true);
 
  790     size_t sz[] = {16,16};
 
  793     fill_grid_some_data(g1);
 
  796     fill_grid_some_data(g2);
 
  799     fill_grid_some_data(g3);
 
  802     fill_grid_some_data(g4);
 
  812     vtk_g.add(0,g1,offset1,spacing1,d1,cmb);
 
  813     vtk_g.add(0,g2,offset2,spacing2,d2,cmb);
 
  814     vtk_g.add(1,g3,offset3,spacing3,d3,cmb);
 
  815     vtk_g.add(1,g4,offset4,spacing4,d4,cmb2);
 
  817     vtk_g.write(
"vtk_grids_st.vtk");
 
  820     bool test = compare(
"vtk_grids_st.vtk",
"test_data/vtk_grids_st_test.vtk");
 
  821     BOOST_REQUIRE_EQUAL(test,
true);
 
  845     size_t sz[] = {16,16};
 
  848     fill_grid_some_data_scal(g1);
 
  851     fill_grid_some_data_scal(g2);
 
  854     fill_grid_some_data_scal(g3);
 
  857     fill_grid_some_data_scal(g4);
 
  861     vtk_g.add(g1,offset1,spacing1,d1);
 
  862     vtk_g.add(g2,offset2,spacing2,d2);
 
  863     vtk_g.add(g3,offset3,spacing3,d3);
 
  864     vtk_g.add(g4,offset4,spacing4,d4);
 
  867     vtk_g.write(
"vtk_grids_prp.vtk",prp_names);
 
  870     bool test = compare(
"vtk_grids_prp.vtk",
"test_data/vtk_grids_prp_test.vtk");
 
  871     BOOST_REQUIRE_EQUAL(test,
true);
 
  895     size_t sz[] = {16,16};
 
  898     fill_grid_some_data(g1);
 
  901     fill_grid_some_data(g2);
 
  904     fill_grid_some_data(g3);
 
  907     fill_grid_some_data(g4);
 
  911     vtk_g.add(g1,offset1,spacing1,d1);
 
  912     vtk_g.add(g2,offset2,spacing2,d2);
 
  913     vtk_g.add(g3,offset3,spacing3,d3);
 
  914     vtk_g.add(g4,offset4,spacing4,d4);
 
  917     vtk_g.write(
"vtk_grids_unk.vtk",prp_names);
 
  922     bool test = compare(
"vtk_grids_unk.vtk",
"test_data/vtk_grids_test.vtk");
 
  923     BOOST_REQUIRE_EQUAL(test,
true);
 
  933         BOOST_REQUIRE_EQUAL(ret,
true);
 
  935         BOOST_REQUIRE_EQUAL(ret,
true);
 
  938         BOOST_REQUIRE_EQUAL(dims,3);
 
  941         BOOST_REQUIRE_EQUAL(dims,1);
 
  947 BOOST_AUTO_TEST_CASE( vtk_writer_use_point_set )
 
  949     Vcluster & v_cl = create_vcluster();
 
  978     for (
size_t i = 0 ; i < v1ps.
size(); i++)
 
  980         v1ps.template get<0>(i)[0] = rng.GetUniform();
 
  981         v1ps.template get<0>(i)[1] = rng.GetUniform();
 
  982         v1ps.template get<0>(i)[2] = rng.GetUniform();
 
  984         v2ps.template get<0>(i)[0] = rng.GetUniform()*0.5;
 
  985         v2ps.template get<0>(i)[1] = rng.GetUniform()*0.5;
 
  986         v2ps.template get<0>(i)[2] = rng.GetUniform()*0.5;
 
  988         v3ps.template get<0>(i)[0] = rng.GetUniform()*0.3;
 
  989         v3ps.template get<0>(i)[1] = rng.GetUniform()*0.3;
 
  990         v3ps.template get<0>(i)[2] = rng.GetUniform()*0.3;
 
  992         v1pp.template get<0>(i) = rng.GetUniform();
 
  993         v1pp.template get<1>(i)[0] = rng.GetUniform();
 
  994         v1pp.template get<1>(i)[1] = rng.GetUniform();
 
  995         v1pp.template get<1>(i)[2] = rng.GetUniform();
 
  997         v2pp.template get<0>(i) = rng.GetUniform();
 
  998         v2pp.template get<1>(i)[0] = rng.GetUniform();
 
  999         v2pp.template get<1>(i)[1] = rng.GetUniform();
 
 1000         v2pp.template get<1>(i)[2] = rng.GetUniform();
 
 1002         v3pp.template get<0>(i) = rng.GetUniform();
 
 1003         v3pp.template get<1>(i)[0] = rng.GetUniform();
 
 1004         v3pp.template get<1>(i)[1] = rng.GetUniform();
 
 1005         v3pp.template get<1>(i)[2] = rng.GetUniform();
 
 1007         v4pp.template get<0>(i) = rng.GetUniform();
 
 1008         v4pp.template get<1>(i).
get(0) = rng.GetUniform();
 
 1009         v4pp.template get<1>(i).
get(1) = rng.GetUniform();
 
 1010         v4pp.template get<1>(i).
get(2) = rng.GetUniform();
 
 1015     vtk_v.add(v1ps,v1pp,75);
 
 1016     vtk_v.add(v2ps,v2pp,88);
 
 1017     vtk_v.add(v3ps,v3pp,90);
 
 1020     vtk_v.write(
"vtk_points.vtk",prp_names);
 
 1027     test = compare(
"vtk_points.vtk",
"test_data/vtk_points_test.vtk");
 
 1028     BOOST_REQUIRE_EQUAL(test,
true);
 
 1034     vtk_v2.add(v1ps,v4pp,75);
 
 1036     vtk_v2.write(
"vtk_points_pp.vtk",prp_names);
 
 1041     test = compare(
"vtk_points_pp.vtk",
"test_data/vtk_points_pp_test.vtk");
 
 1042     BOOST_REQUIRE_EQUAL(test,
true);
 
 1049 BOOST_AUTO_TEST_CASE( vtk_writer_use_point_set_properties )
 
 1051     Vcluster & v_cl = create_vcluster();
 
 1059     openfpm::vector<aggregate<float,float[3]>> v1pp;
 
 1069     for (
size_t i = 0 ; i < v1ps.
size(); i++)
 
 1071         v1ps.template get<0>(i)[0] = rng.GetUniform();
 
 1072         v1ps.template get<0>(i)[1] = rng.GetUniform();
 
 1073         v1ps.template get<0>(i)[2] = rng.GetUniform();
 
 1076         v1pp.template get<0>(i) = rng.GetUniform();
 
 1077         v1pp.template get<1>(i)[0] = rng.GetUniform();
 
 1078         v1pp.template get<1>(i)[1] = rng.GetUniform();
 
 1079         v1pp.template get<1>(i)[2] = rng.GetUniform();
 
 1086     vtk_v.add(v1ps,v1pp,75);
 
 1088     vtk_v.write(
"vtk_points_with_prp_names.vtk",prp_names);
 
 1093     bool test = compare(
"vtk_points_with_prp_names.vtk",
"test_data/vtk_points_with_prp_names_test.vtk");
 
 1094     BOOST_REQUIRE_EQUAL(test,
true);
 
 1101 BOOST_AUTO_TEST_CASE( vtk_writer_use_point_set_binary )
 
 1103     Vcluster & v_cl = create_vcluster();
 
 1113         openfpm::vector<aggregate<float,float[3]>> v1pp;
 
 1114         openfpm::vector<aggregate<float,float[3]>> v2pp;
 
 1115         openfpm::vector<aggregate<float,float[3]>> v3pp;
 
 1116         openfpm::vector<aggregate<float,Point<3,float>>> v4pp;
 
 1132         for (
size_t i = 0 ; i < v1ps.
size(); i++)
 
 1134             v1ps.template get<0>(i)[0] = rng.GetUniform();
 
 1135             v1ps.template get<0>(i)[1] = rng.GetUniform();
 
 1136             v1ps.template get<0>(i)[2] = rng.GetUniform();
 
 1138             v2ps.template get<0>(i)[0] = rng.GetUniform()*0.5;
 
 1139             v2ps.template get<0>(i)[1] = rng.GetUniform()*0.5;
 
 1140             v2ps.template get<0>(i)[2] = rng.GetUniform()*0.5;
 
 1142             v3ps.template get<0>(i)[0] = rng.GetUniform()*0.3;
 
 1143             v3ps.template get<0>(i)[1] = rng.GetUniform()*0.3;
 
 1144             v3ps.template get<0>(i)[2] = rng.GetUniform()*0.3;
 
 1146             v1pp.template get<0>(i) = rng.GetUniform();
 
 1147             v1pp.template get<1>(i)[0] = rng.GetUniform();
 
 1148             v1pp.template get<1>(i)[1] = rng.GetUniform();
 
 1149             v1pp.template get<1>(i)[2] = rng.GetUniform();
 
 1151             v2pp.template get<0>(i) = rng.GetUniform();
 
 1152             v2pp.template get<1>(i)[0] = rng.GetUniform();
 
 1153             v2pp.template get<1>(i)[1] = rng.GetUniform();
 
 1154             v2pp.template get<1>(i)[2] = rng.GetUniform();
 
 1156             v3pp.template get<0>(i) = rng.GetUniform();
 
 1157             v3pp.template get<1>(i)[0] = rng.GetUniform();
 
 1158             v3pp.template get<1>(i)[1] = rng.GetUniform();
 
 1159             v3pp.template get<1>(i)[2] = rng.GetUniform();
 
 1161             v4pp.template get<0>(i) = rng.GetUniform();
 
 1162             v4pp.template get<1>(i).
get(0) = rng.GetUniform();
 
 1163             v4pp.template get<1>(i).
get(1) = rng.GetUniform();
 
 1164             v4pp.template get<1>(i).
get(2) = rng.GetUniform();
 
 1169         vtk_v.add(v1ps,v1pp,75);
 
 1170         vtk_v.add(v2ps,v2pp,88);
 
 1171         vtk_v.add(v3ps,v3pp,90);
 
 1174         vtk_v.write(
"vtk_points_bin.vtk",prp_names,
"vtk output",file_type::BINARY);
 
 1175         vtk_v.write(
"vtk_points_bin2.vtk",prp_names,
"vtk output",file_type::BINARY);
 
 1182         test = compare(
"vtk_points_bin.vtk",
"test_data/vtk_points_bin_test.vtk");
 
 1183         BOOST_REQUIRE_EQUAL(test,
true);
 
 1184         test = compare(
"vtk_points_bin2.vtk",
"test_data/vtk_points_bin_test.vtk");
 
 1185         BOOST_REQUIRE_EQUAL(test,
true);
 
 1191         vtk_v2.add(v1ps,v4pp,75);
 
 1193         vtk_v2.write(
"vtk_points_pp_bin.vtk",prp_names,
"vtk output",file_type::BINARY);
 
 1198         test = compare(
"vtk_points_pp_bin.vtk",
"test_data/vtk_points_pp_bin_test.vtk");
 
 1199         BOOST_REQUIRE_EQUAL(test,
true);
 
 1230         for (
size_t i = 0 ; i < v1ps.
size(); i++)
 
 1232             v1ps.template get<0>(i)[0] = rng.GetUniform();
 
 1233             v1ps.template get<0>(i)[1] = rng.GetUniform();
 
 1234             v1ps.template get<0>(i)[2] = rng.GetUniform();
 
 1236             v2ps.template get<0>(i)[0] = rng.GetUniform()*0.5;
 
 1237             v2ps.template get<0>(i)[1] = rng.GetUniform()*0.5;
 
 1238             v2ps.template get<0>(i)[2] = rng.GetUniform()*0.5;
 
 1240             v3ps.template get<0>(i)[0] = rng.GetUniform()*0.3;
 
 1241             v3ps.template get<0>(i)[1] = rng.GetUniform()*0.3;
 
 1243             v1pp.template get<0>(i) = rng.GetUniform();
 
 1244             v1pp.template get<1>(i)[0][0] = rng.GetUniform();
 
 1245             v1pp.template get<1>(i)[0][1] = rng.GetUniform();
 
 1246             v1pp.template get<1>(i)[0][2] = rng.GetUniform();
 
 1247             v1pp.template get<1>(i)[1][0] = rng.GetUniform();
 
 1248             v1pp.template get<1>(i)[1][1] = rng.GetUniform();
 
 1249             v1pp.template get<1>(i)[1][2] = rng.GetUniform();
 
 1250             v1pp.template get<1>(i)[2][0] = rng.GetUniform();
 
 1251             v1pp.template get<1>(i)[2][1] = rng.GetUniform();
 
 1252             v1pp.template get<1>(i)[2][2] = rng.GetUniform();
 
 1254             v2pp.template get<0>(i) = rng.GetUniform();
 
 1255             v2pp.template get<1>(i)[0][0] = rng.GetUniform();
 
 1256             v2pp.template get<1>(i)[0][1] = rng.GetUniform();
 
 1257             v2pp.template get<1>(i)[0][2] = rng.GetUniform();
 
 1258             v2pp.template get<1>(i)[1][0] = rng.GetUniform();
 
 1259             v2pp.template get<1>(i)[1][1] = rng.GetUniform();
 
 1260             v2pp.template get<1>(i)[1][2] = rng.GetUniform();
 
 1261             v2pp.template get<1>(i)[2][0] = rng.GetUniform();
 
 1262             v2pp.template get<1>(i)[2][1] = rng.GetUniform();
 
 1263             v2pp.template get<1>(i)[2][2] = rng.GetUniform();
 
 1265             v3pp.template get<0>(i) = rng.GetUniform();
 
 1266             v3pp.template get<1>(i)[0][0] = rng.GetUniform();
 
 1267             v3pp.template get<1>(i)[0][1] = rng.GetUniform();
 
 1268             v3pp.template get<1>(i)[0][2] = rng.GetUniform();
 
 1269             v3pp.template get<1>(i)[1][0] = rng.GetUniform();
 
 1270             v3pp.template get<1>(i)[1][1] = rng.GetUniform();
 
 1271             v3pp.template get<1>(i)[1][2] = rng.GetUniform();
 
 1272             v3pp.template get<1>(i)[2][0] = rng.GetUniform();
 
 1273             v3pp.template get<1>(i)[2][1] = rng.GetUniform();
 
 1274             v3pp.template get<1>(i)[2][2] = rng.GetUniform();
 
 1276             v4pp.template get<0>(i)[0] = rng.GetUniform();
 
 1277             v4pp.template get<0>(i)[1] = rng.GetUniform();
 
 1278             v4pp.template get<0>(i)[2] = rng.GetUniform();
 
 1279             v4pp.template get<1>(i)[0] = rng.GetUniform();
 
 1280             v4pp.template get<1>(i)[1] = rng.GetUniform();
 
 1285         vtk_v.add(v1ps,v1pp,75);
 
 1286         vtk_v.add(v2ps,v2pp,88);
 
 1287         vtk_v.add(v3ps,v3pp,90);
 
 1291         vtk_v.write(
"vtk_points_2d_bin.vtk",stub,
"vtk output",file_type::BINARY);
 
 1298         test = compare(
"vtk_points_2d_bin.vtk",
"test_data/vtk_points_2d_bin_test.vtk");
 
 1299         BOOST_REQUIRE_EQUAL(test,
true);
 
 1305         vtk_v2.add(v1ps,v4pp,75);
 
 1307         vtk_v2.write(
"vtk_points_2d_pp_bin.vtk",stub,
"vtk output",file_type::BINARY);
 
 1312         test = compare(
"vtk_points_2d_pp_bin.vtk",
"test_data/vtk_points_2d_pp_bin_test.vtk");
 
 1313         BOOST_REQUIRE_EQUAL(test,
true);
 
 1319 BOOST_AUTO_TEST_SUITE_END()
 
auto get(const grid_dist_key_dx< dim > &v1) const -> typename std::add_lvalue_reference< decltype(loc_grid.get(v1.getSub()).template get< p >(v1.getKey()))>::type
Get the reference of the selected element. 
 
Sub-domain vertex graph node. 
 
void addVertex(const V &vrt)
add vertex 
 
static const unsigned int dims
Number of dimensions. 
 
Position of the element of dimension d in the hyper-cube of dimension dim. 
 
size_t getProcessUnitID()
Get the process unit id. 
 
static const unsigned int x
computation property id in boost::fusion::vector 
 
float s_type
type of the positional field 
 
point test with only scalar properties 
 
This class implement the point shape in an N-dimensional space. 
 
Implementation of VCluster class. 
 
SimpleRNG is a simple random number generator based on George Marsaglia's MWC (multiply with carry) g...
 
boost::fusion::vector< float[2], size_t, double > type
The node contain 3 unsigned long integer for communication computation memory and id...
 
This is a distributed grid. 
 
If it has not dims property defined the object is considered scalar. 
 
vertex3(float x, float y)
Initialize the VTKVertex. 
 
boost::fusion::vector< float[3], size_t, double > type
The node contain 3 unsigned long integer for communication computation memory and id...
 
void mone()
Set all the elements to -1. 
 
Structure that store a graph in CSR format or basically in compressed adjacency matrix format...
 
boost::fusion::vector< float, float, float, float, size_t, double, unsigned char, long int > type
The node contain 3 unsigned long integer for communication computation memory and id...
 
void zero()
Set all the elements to zero. 
 
This class represent an N-dimensional box. 
 
auto addEdge(size_t v1, size_t v2, const E &ed) -> decltype(e.get(0))
add edge on the graph 
 
Test structure used for several test. 
 
float s_type
type of the positional field 
 
static const unsigned int x
computation property id in boost::fusion::vector 
 
vertex2(float x, float y, float z)
Initialize the VTKVertex. 
 
static const unsigned int max_prop
total number of properties boost::fusion::vector 
 
Test structure used for several test. 
 
Implementation of 1-D std::vector like structure. 
 
static const unsigned int max_prop
total number of properties boost::fusion::vector 
 
vertex(float x, float y, float z)
Initialize the VTKVertex. 
 
check for T to be writable 
 
float s_type
type of the positional field