Hi Lukas:

I still have one main point that I do not understand about both current nedelec implementations in deal.II. Instead of the approach to include the reorientation of Dofs in the scatter-gather process of the DoF handler, both implementations include the reorientation in the Finite element.

Yes. I think this is probably best understand not as a conscious design decision, but in historic context: The first elements that were implemented (for the first several years of deal.II) all had no issues with orientations because they were scalar and/or only implemented for 2d meshes that could always be assumed to be correctly oriented. The design of the DoFHandler and the scatter-gather process simply made no accommodation for orientations because we did not foresee the issue :-(

I can't say that I remember why the people who implemented the first RT or Nedelec elements made a conscious decision at the time that the FiniteElement class would be the best place to handle this -- it may simply be that that's a place they understood, and so put it in there.


This leads to a prolongation matrix that does not only depend on the childindex, but also on the edge orientations of parent and children edges. But the deal.ii interface for the finite elements does not reflect this dependence, and I do not see how the user is supposed to access this reorientation information.

Yes, that is true, and if you were to use these elements in schemes where you actually require prolongation and restriction matrices, you will probably get wrong results (or at least sub-optimal convergence). That would specifically cover multigrid and the SolutionTransfer class, and perhaps more. These are all clearly bugs.


Is there already a place in the multigrid code that adjusts for the reorientation, or does multigrid not work for nedelec elements, or am I missing something?

I don't know the multigrid code well, so don't know for sure -- but would not at all be surprised if that just doesn't work on meshes that are not consistently oriented.

From a pragmatic perspective, one can then of course ask how to move forward. I think a reasonable approach would be to add an argument to the functions that compute restriction and prolongation matrices that refers to a specific cell from which one can obtain relative orientations, and let these functions then return corrected information. That might be a nice incremental approach because for most elements, the answer is "same as before", and one just needs to fix the Nedelec and RT-type elements. A next step would then involve finding all the places where these functions are called and pass in whatever cell is currently pertinent. We'd of course be very happy to take patches in this regard.

Perhaps if one had to re-write the DoFHandler today, moving this functionality there might also be an option, but I think that is just very difficult to add today. The DoFHandler only knows "on this edge, we have 3 DoFs". It knows nothing of their properties, whether they are associated with specific locations along the edge, have vector transformation properties, etc. This sort of information is not exchanged right now between FE and DoFHandler, and I imagine that writing this sort of interface and getting this all right in DoFHandler (plus using it in downstream code) is going to be a long project that is difficult to get right and complete -- this is the sort of thing that may perhaps be conceptually right to do, but in practice often leads to "incomplete transitions". My preference would be to continue working in the FiniteElement context where it is easier for me to see how one can make progress without getting the whole cart stuck in the mud. Of course, I have also been surprised at times by someone who tackles a project that I thought was intractable with sufficient energy :-)

I hope all of this helps -- these are the practicalities of large software projects where not everything has always been thought through right from the beginning :-(

Cheers
 W.

--
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 [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/dealii/ae0570ee-4f75-4f85-b6c1-616c206fff30%40colostate.edu.

Reply via email to