85 {
86
87
88
89
90 const std::vector<Real> gold_vector = {-1, 3, 10,
91 0, 1, 12,
92 2, 0, 14,
93 0, 1.5, 11,
94 0.5, 1, 13,
95 0.5, 1.5, 12,
96 3, 4, 16,
97 3, 1.5, 15,
98 0.5, 4, 13};
99
100
101
102 const std::vector<dof_id_type>
103 node_reordering({0, 3, 1, 8, 5, 4, 6, 7, 2});
104
107 for (const auto & node : read_mesh.node_ptr_range())
108 {
110 continue;
111
112
113
114#ifdef LIBMESH_USE_COMPLEX_NUMBERS
115 const unsigned int v2 = 3;
116#else
117 const unsigned int v2 = 1;
118#endif
119 CPPUNIT_ASSERT_EQUAL(node->n_vars(0), 3*v2);
120
121 CPPUNIT_ASSERT_LESS(node_reordering.size(), std::size_t(node->id()));
122 const dof_id_type gold_i_ux = node_reordering[node->id()] * 3;
125 CPPUNIT_ASSERT_LESS(gold_vector.size(), std::size_t(gold_i_v));
126
127 LIBMESH_ASSERT_NUMBERS_EQUAL(sys2_soln(node->dof_number(0,0,0)),
128 gold_vector[gold_i_ux], tol);
129 LIBMESH_ASSERT_NUMBERS_EQUAL(sys2_soln(node->dof_number(0,v2,0)),
130 gold_vector[gold_i_uy], tol);
131 LIBMESH_ASSERT_NUMBERS_EQUAL(sys2_soln(node->dof_number(0,2*v2,0)),
132 gold_vector[gold_i_v], tol);
133
134
135#ifdef LIBMESH_USE_COMPLEX_NUMBERS
136 LIBMESH_ASSERT_NUMBERS_EQUAL(sys2_soln(node->dof_number(0,1,0)),
137 0.0, tol);
138 LIBMESH_ASSERT_NUMBERS_EQUAL(sys2_soln(node->dof_number(0,2,0)),
139 std::abs(gold_vector[gold_i_ux]), tol);
140 LIBMESH_ASSERT_NUMBERS_EQUAL(sys2_soln(node->dof_number(0,4,0)),
141 0.0, tol);
142 LIBMESH_ASSERT_NUMBERS_EQUAL(sys2_soln(node->dof_number(0,5,0)),
143 std::abs(gold_vector[gold_i_uy]), tol);
144 LIBMESH_ASSERT_NUMBERS_EQUAL(sys2_soln(node->dof_number(0,7,0)),
145 0.0, tol);
146 LIBMESH_ASSERT_NUMBERS_EQUAL(sys2_soln(node->dof_number(0,8,0)),
147 std::abs(gold_vector[gold_i_v]), tol);
148#endif
149 }
150 }
processor_id_type processor_id() const