From: Winnifried Wollner Date: Wed, 30 Oct 2019 08:42:26 +0000 (+0100) Subject: Fixed fe dimension in VectorTools::internals::compute_face_projection_curl_conforming_l2 X-Git-Tag: v9.2.0-rc1~930^2~4 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98dbff60bdb10c7516fdf273637ed2febe1c1c17;p=dealii.git Fixed fe dimension in VectorTools::internals::compute_face_projection_curl_conforming_l2 --- 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;