Winni, Would you mind creating a pull request for the first issue you are reporting?
Best, Daniel Am Di., 29. Okt. 2019 um 13:06 Uhr schrieb winnifried < woll...@mathematik.tu-darmstadt.de>: > Dear all, > > I encountered the following issue while trying to solve a Maxwell > eigenvalue problem in dealii v 9.1.1. > > When using an FESystem<3> containing one FENedelec and other elements and > trying to set boundary values > via > > VectorTools::project_boundary_values_curl_conforming_l2 > > where the argument of first_vector_component is set to the starting > component of the FENedelec. > The problem has two parts, the first is solved the second is not and input > is appreciated. > > Part 1 (solved): > When the FESystem contains two FENedelec of different degree. > > Running the attached code (main.cc) ends in debug mode with the > error > > The violated condition was: > associated_edge_dofs == degree + 1 > Additional information: > Error: Unexpected number of 3D edge DoFs > > triggered by line 31 (main.cc). > > The error is caused by the fact, that in vector_tools.templates.h the > degree is calculated using > > fe.degree - 1 > > which for FESystem is the wrong value as it is the maximum degree and not > the degree of the selected element. > It seems to me, that a fix for this is to use > > fe.base_element(base_indices.first).degree - 1; > > a few lines later once the user indicated base_element is known. > Once this is done, in debug mode in the attached example line 31 still > gives an error since > in VectorTools::compute_face_projection_curl_conforming_l2 a 0-by-0 matrix > for the face dofs is to be inverted. > I am not sure why this pops up as it did not appear with the original > version using only FENedelec of lowest order. > > Anyways this seems to be easy to fix. A patch for vector_tools.templates.h > (in dealii v9.1.1) is attached > - it is not tested that the computed result is correct, only that this > fixes the wrongly chosen degree and produces no errors. > > Part 2 (input needed): > Unfortunately this did not solve the original problem in full. If the > FESystem does not only contain FENedelec, but another FE_Q > and after applying the patch the original error "Unexpected number of 3D > edge DoFs" > still pops up in line 42 of the attached example, this time not because > the wrong degree is selected, but because the > > if(((dynamic_cast<const FESystem<dim> *>(&fe) != > nullptr) ... > > statement in line 5440 of the patched vector_tools.templates.h is never > true in this case. > Any input on why this might happen is appreciated - in particular whether > the assumptions made on the ordering of the > dofs is correct for such FESystems. > > Thanks > Winni > > -- > The deal.II project is located at http://www.dealii.org/ > For mailing list/forum options, see > https://groups.google.com/d/forum/dealii?hl=en > --- > You received this message because you are subscribed to the Google Groups > "deal.II User Group" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to dealii+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/dealii/1eea5fd0-6acb-40e1-b55d-43d94d8fe22d%40googlegroups.com > <https://groups.google.com/d/msgid/dealii/1eea5fd0-6acb-40e1-b55d-43d94d8fe22d%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/CAOYDWb%2B2Y39cHOS9cKQ3b-3zNHEhNyC_xc9Qp9srKsqHD6Z5ng%40mail.gmail.com.