75 first = v.first_local_index(),
76 last = v.last_local_index();
82 auto v_clone = v.clone();
83 auto & vorig = *v_clone;
85 CPPUNIT_ASSERT(relative_fuzzy_equals(v, vorig));
89 CPPUNIT_ASSERT(!relative_fuzzy_equals(v, vorig));
92 LIBMESH_ASSERT_NUMBERS_EQUAL
99 LIBMESH_ASSERT_NUMBERS_EQUAL
106 LIBMESH_ASSERT_NUMBERS_EQUAL
113 LIBMESH_ASSERT_NUMBERS_EQUAL
119 LIBMESH_ASSERT_NUMBERS_EQUAL
125 LIBMESH_ASSERT_NUMBERS_EQUAL
131 LIBMESH_ASSERT_NUMBERS_EQUAL
137 LIBMESH_ASSERT_NUMBERS_EQUAL
143 LIBMESH_ASSERT_NUMBERS_EQUAL
149 LIBMESH_ASSERT_NUMBERS_EQUAL
153 LIBMESH_ASSERT_NUMBERS_EQUAL
166 first = v.first_local_index(),
167 last = v.last_local_index();
169 const unsigned int sub_local_size =
block_size/2;
170 const unsigned int sub_global_size = sub_local_size *
my_comm->
size();
172 for (
auto supplying_global_rows : {
false,
true})
173 for (
auto get_not_create : {
false,
true})
176 if (get_not_create && supplying_global_rows)
183 std::unique_ptr<Base> s_ptr =
184 std::make_unique<Derived>(*
my_comm, sub_global_size,
188 sub_first = s_ptr->first_local_index(),
189 sub_last = s_ptr->last_local_index();
199 std::vector<libMesh::dof_id_type> rows;
201 rows.push_back(first+2*i);
203 if (supplying_global_rows)
210 s_ptr.reset(
dynamic_cast<Base *
>(subvec_ptr));
213 v.create_subvector(*s_ptr, rows, supplying_global_rows);
218 LIBMESH_ASSERT_NUMBERS_EQUAL
231 v.restore_subvector(std::move(s_ptr), rows);
236 if (offset < 2*sub_local_size && !(offset%2))
237 LIBMESH_ASSERT_NUMBERS_EQUAL
240 ((offset/2) + sub_first)),
243 LIBMESH_ASSERT_NUMBERS_EQUAL
294 first = v.first_local_index(),
295 last = v.last_local_index();
310 LIBMESH_ASSERT_NUMBERS_EQUAL(v.sum(), -exact_l1,
312 LIBMESH_ASSERT_FP_EQUAL(v.l1_norm(), exact_l1,
314 LIBMESH_ASSERT_FP_EQUAL(v.l2_norm(), exact_l2,
326 Base & diff = diff_derived;
334 const auto diff_norm = diff.l2_norm();
335 const auto norm_diff = u.l2_norm_diff(v);
336 LIBMESH_ASSERT_FP_EQUAL(diff_norm, norm_diff,
337 (std::abs(diff_norm)+std::abs(norm_diff)) *
352 first = v.first_local_index(),
353 last = v.last_local_index();
365 v.localize_to_one(l,root_pid);
370 LIBMESH_ASSERT_NUMBERS_EQUAL
376 v.insert (&
value, std::vector<libMesh::numeric_index_type>({n}));
383 v.localize_to_one(l,root_pid);
388 LIBMESH_ASSERT_NUMBERS_EQUAL
403 std::vector<libMesh::dof_id_type> indices;
407 first = v.first_local_index(),
408 last = v.last_local_index();
418 for (
unsigned int j = 0; j !=
block_size; ++j)
419 indices.push_back(end_index-j-1);
422 v.localize(values, indices);
428 for (
unsigned int j = 0; j !=
block_size; ++j)
429 LIBMESH_ASSERT_NUMBERS_EQUAL