From: Wolfgang Bangerth Date: Fri, 28 Feb 2020 18:11:16 +0000 (+0100) Subject: Merge branch 'nedelec' into nedelec X-Git-Tag: v9.2.0-rc1~332^2~3 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab137f219c01b2dd2d809fdea11b02b60ca47648;p=dealii.git Merge branch 'nedelec' into nedelec --- ab137f219c01b2dd2d809fdea11b02b60ca47648 diff --cc include/deal.II/numerics/vector_tools.templates.h index 5d04209f72,d8393727a9..5e5ff781d3 --- a/include/deal.II/numerics/vector_tools.templates.h +++ b/include/deal.II/numerics/vector_tools.templates.h @@@ -5406,19 -5408,23 +5404,23 @@@ namespace VectorTool fe.base_element(i).n_components(); } else - { - // Assert that the FE is in fact an FE_Nedelec, so that the default - // base_indices == (0,0) is correct. - Assert((dynamic_cast *>(&cell->get_fe()) != - nullptr) || - (dynamic_cast *>(&cell->get_fe()) != - nullptr), - ExcNotImplemented()); - } - // Store degree as fe.degree-1 - // For nedelec elements FE_Nedelec (0) returns fe.degree = 1. - // For FESystem get the degree from the base_element - // indicated by the first_vector_component + // The only other element we know how to deal with (so far) is + // FE_Nedelec, which has one base element and one copy of it + // (with 3 components). In that case, the values of + // 'base_indices' as initialized above are correct. + Assert((dynamic_cast *>(&cell->get_fe()) != + nullptr) || + (dynamic_cast *>(&cell->get_fe()) != + nullptr), + ExcNotImplemented()); + + - // Store the 'degree' of the Nedelec element as fe.degree-1 For ++ // Store the 'degree' of the Nedelec element as fe.degree-1. For + // Nedelec elements, FE_Nedelec(0) returns fe.degree = 1 + // because fe.degree stores the *polynomial* degree, not the + // degree of the element (which is typically defined based on + // the largest polynomial space that is *complete* within the + // finite element). const unsigned int degree = fe.base_element(base_indices.first).degree - 1;