From 5d35e2e9ef5aad31e5978cdd61894e4c34e7748d Mon Sep 17 00:00:00 2001 From: Peter Munch Date: Fri, 26 Feb 2021 13:35:22 +0100 Subject: [PATCH] Fix DataAccessOnFaces::values for meshes containing non-hypercube cells --- include/deal.II/matrix_free/dof_info.templates.h | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/include/deal.II/matrix_free/dof_info.templates.h b/include/deal.II/matrix_free/dof_info.templates.h index 59274ade9d..4dfee437bd 100644 --- a/include/deal.II/matrix_free/dof_info.templates.h +++ b/include/deal.II/matrix_free/dof_info.templates.h @@ -1310,13 +1310,17 @@ namespace internal const std::function &)> &loop) { - bool all_nodal = true; + bool all_nodal_and_tensorial = true; for (unsigned int c = 0; c < n_base_elements; ++c) - if (!shape_info(global_base_element_offset + c, 0) - .data.front() - .nodal_at_cell_boundaries) - all_nodal = false; - if (all_nodal == false) + { + const auto &si = + shape_info(global_base_element_offset + c, 0).data.front(); + if (!si.nodal_at_cell_boundaries || + (si.element_type == + internal::MatrixFreeFunctions::ElementType::tensor_none)) + all_nodal_and_tensorial = false; + } + if (all_nodal_and_tensorial == false) vector_partitioner_values = vector_partitioner; else { -- 2.39.5