1 #include <libmesh/libmesh.h> 
    2 #include <libmesh/mesh.h> 
    3 #include <libmesh/elem.h> 
    4 #include <libmesh/mesh_generation.h> 
    5 #include <libmesh/mesh_refinement.h> 
   24   CPPUNIT_TEST( testExtraIntegersEdge2 );
 
   25   CPPUNIT_TEST( testExtraIntegersTri6 );
 
   27 #ifdef LIBMESH_HAVE_XDR 
   28   CPPUNIT_TEST( testExtraIntegersCheckpointEdge3 );
 
   29   CPPUNIT_TEST( testExtraIntegersCheckpointHex8 );
 
   32   CPPUNIT_TEST_SUITE_END();
 
   36   std::array<unsigned int, 6>
 
   47     const std::unique_ptr<Elem> test_elem = 
Elem::build(elem_type);
 
   48     const unsigned int ymax = test_elem->dim() > 1;
 
   49     const unsigned int zmax = test_elem->dim() > 2;
 
   50     const unsigned int ny = ymax * n_elem_per_side;
 
   51     const unsigned int nz = zmax * n_elem_per_side;
 
   61     return {i1, r1, ni1, ni2, nr1, nr2};
 
   65   void test_and_set_initial_data
 
   68     const unsigned int i1 = ini[0],
 
   75         const unsigned int expected_extra_ints =
 
   77         CPPUNIT_ASSERT_EQUAL(elem->n_extra_integers(), expected_extra_ints);
 
   79         elem->set_extra_integer(i1, 
dof_id_type(elem->point(0)(0)*100));
 
   80         CPPUNIT_ASSERT_EQUAL(elem->get_extra_integer(i1), 
dof_id_type(elem->point(0)(0)*100));
 
   81         elem->set_extra_datum<
Real>(r1, elem->point(0)(0)*1000);
 
   82         CPPUNIT_ASSERT_EQUAL(elem->get_extra_datum<
Real>(r1), elem->point(0)(0)*1000);
 
   87         const unsigned int expected_extra_ints =
 
   89         CPPUNIT_ASSERT_EQUAL(node->n_extra_integers(), expected_extra_ints);
 
   92         node->set_extra_datum<
Real>(nr1, (*node)(0)*1000);
 
   93         CPPUNIT_ASSERT_EQUAL(node->get_extra_datum<
Real>(nr1), (*node)(0)*1000);
 
  105         const Elem * top_parent = elem;
 
  106 #ifdef LIBMESH_ENABLE_AMR 
  111           for (
auto & node : elem->node_ref_range())
 
  113               const unsigned int expected_extra_ints =
 
  115               CPPUNIT_ASSERT_EQUAL(node.n_extra_integers(), expected_extra_ints);
 
  118         const unsigned int expected_extra_ints =
 
  120         CPPUNIT_ASSERT_EQUAL(elem->n_extra_integers(), expected_extra_ints);
 
  121         CPPUNIT_ASSERT_EQUAL(elem->get_extra_integer(i1), 
dof_id_type(top_parent->
point(0)(0)*100));
 
  130     std::array<unsigned int, 6> ini = build_mesh(
mesh, elem_type, n_elem_per_side);
 
  131     const unsigned int i1 = ini[0],
 
  135     test_and_set_initial_data(
mesh, ini);
 
  147     test_final_integers(
mesh, i1);
 
  149 #ifdef LIBMESH_ENABLE_AMR 
  153     test_final_integers(
mesh, i1);
 
  161     std::array<unsigned int, 6> ini = build_mesh(
mesh, elem_type, n_elem_per_side);
 
  162     const unsigned int i1 = ini[0], ni1 = ini[2], ni2 = ini[3];
 
  164     test_and_set_initial_data(
mesh, ini);
 
  166     const std::string filename =
 
  167       std::string(
"extra_integers.cp") + (binary ? 
"r" : 
"a");
 
  175     mesh2.
read(filename);
 
  183     test_final_integers(mesh2, i1);