Skip to content
Snippets Groups Projects
Unverified Commit 5c692aa5 authored by René Fritze's avatar René Fritze
Browse files

[tests] fix build for integrands_grad

parent d21097cc
No related branches found
No related tags found
1 merge request!10Draft: consolidate refactoring work
...@@ -143,16 +143,21 @@ struct GradientValueIntegrandTest : public IntegrandTest<G> ...@@ -143,16 +143,21 @@ struct GradientValueIntegrandTest : public IntegrandTest<G>
const auto& grid_view = grid_provider_->leaf_view(); const auto& grid_view = grid_provider_->leaf_view();
const auto space = make_continuous_lagrange_space<d>(grid_view, /*polorder=*/2); const auto space = make_continuous_lagrange_space<d>(grid_view, /*polorder=*/2);
const auto n = space.mapper().size(); const auto n = space.mapper().size();
MatrixType test_grad_mat(n, n, make_element_sparsity_pattern(space, space, grid_view));
MatrixType ansatz_grad_mat(n, n, make_element_sparsity_pattern(space, space, grid_view)); BilinearForm<GV, d, 1, d, 1> test_grad_form(grid_view);
MatrixOperator<GV, d, 1, d, 1> test_grad_op(grid_view, space, space, test_grad_mat); test_grad_form += LocalElementIntegralBilinearForm<E, d, 1, double, double, d, 1>{test_grad_integrand};
MatrixOperator<GV, d, 1, d, 1> ansatz_grad_op(grid_view, space, space, ansatz_grad_mat); BilinearForm<GV, d, 1, d, 1> ansatz_grad_form(grid_view);
test_grad_op.append(LocalElementIntegralBilinearForm<E, d, 1, double, double, d, 1>{test_grad_integrand}); ansatz_grad_form += LocalElementIntegralBilinearForm<E, d, 1, double, double, d, 1>{ansatz_grad_integrand};
test_grad_op.assemble(true); auto test_grad_op = test_grad_form.template with<MatrixType>(space, space);
ansatz_grad_op.append(LocalElementIntegralBilinearForm<E, d, 1, double, double, d, 1>{ansatz_grad_integrand}); auto ansatz_grad_op = ansatz_grad_form.template with<MatrixType>(space, space);
ansatz_grad_op.assemble(true); auto walker = XT::Grid::make_walker(grid_view);
EXPECT_TRUE(XT::Common::FloatCmp::eq(test_grad_mat, XT::Common::transposed(ansatz_grad_mat), 1e-14, 1e-14)); walker.append(test_grad_op);
const auto mat_data_ptr = XT::Common::serialize_rowwise(test_grad_mat); walker.append(ansatz_grad_op);
walker.walk(DXTC_TEST_CONFIG_GET("setup.use_tbb", true));
EXPECT_TRUE(
XT::Common::FloatCmp::eq(test_grad_op.matrix(), XT::Common::transposed(ansatz_grad_op.matrix()), 1e-14, 1e-14));
const auto mat_data_ptr = XT::Common::serialize_rowwise(test_grad_op.matrix());
const auto min_entry = *std::min_element(mat_data_ptr.begin(), mat_data_ptr.begin() + n * n); const auto min_entry = *std::min_element(mat_data_ptr.begin(), mat_data_ptr.begin() + n * n);
const auto max_entry = *std::max_element(mat_data_ptr.begin(), mat_data_ptr.begin() + n * n); const auto max_entry = *std::max_element(mat_data_ptr.begin(), mat_data_ptr.begin() + n * n);
const auto square_sum = std::accumulate( const auto square_sum = std::accumulate(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment