From 98dbff60bdb10c7516fdf273637ed2febe1c1c17 Mon Sep 17 00:00:00 2001 From: Winnifried Wollner Date: Wed, 30 Oct 2019 09:42:26 +0100 Subject: [PATCH] Fixed fe dimension in VectorTools::internals::compute_face_projection_curl_conforming_l2 --- include/deal.II/numerics/vector_tools.templates.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/include/deal.II/numerics/vector_tools.templates.h b/include/deal.II/numerics/vector_tools.templates.h index 26ba588d7a..f5288e9e3e 100644 --- a/include/deal.II/numerics/vector_tools.templates.h +++ b/include/deal.II/numerics/vector_tools.templates.h @@ -5629,7 +5629,6 @@ namespace VectorTools const FiniteElement & fe = cell->get_fe(); const std::vector> &quadrature_points = fe_face_values.get_quadrature_points(); - const unsigned int degree = fe.degree - 1; std::vector> values(fe_face_values.n_quadrature_points, Vector(fe.n_components())); @@ -5669,6 +5668,7 @@ namespace VectorTools base_indices.second = (first_vector_component - fe_index_old) / fe.base_element(i).n_components(); } + const unsigned int degree = fe.base_element(base_indices.first).degree - 1; switch (dim) { @@ -6016,10 +6016,12 @@ namespace VectorTools } } - // Solve lienar system: - face_matrix_inv.invert(face_matrix); - face_matrix_inv.vmult(face_solution, face_rhs); - + // Solve linear system: + if(associated_face_dofs > 0) + { + face_matrix_inv.invert(face_matrix); + face_matrix_inv.vmult(face_solution, face_rhs); + } // Store computed DoFs: for (unsigned int associated_face_dof = 0; -- 2.39.5