[Dune-devel] GenericLocalFiniteElement cleanup in dune-localfunctions

Simon Praetorius simon.praetorius at tu-dresden.de
Sun Apr 26 10:08:23 CEST 2020


Dear Dune Developers,

Recently, I had a look in dune-localfunctions in the construction of the GenericLocalFiniteElement that is used, e.g., in the runtime-order LagrangeLocalFiniteElement. I initially wanted to fix a small bug related to missing forwarding of template parameters, but gave up quickly due to the complex interaction of so many undocumented complex classes. So, I thought, this needs a larger cleanup. I have identitied already a few points that need to be addressed:

1. Removed reinterpret_cast of FieldMatrix into FieldVector and similar types. Related to issue #14 in dune-localfunctions (ciritcal bug). This could be fixed with some kind of flat-view helper, I think.
2. Allow flexible domain and range field type for the local basis (the storage and compute fields do not do the job). Currently it is fixed to double.
3. Clarify the meaning and difference between Domain, Range, StorageField, ComputeField. Is there any reasonable application of four different types?
4. Maybe replace the virtual interface by some variant based type-erasure. The Topology type must be type-erased, but there are only very few different Topologies per dimension.
5. Remove several of unused and unnecessary utilities, like Precision and maybe field_cast
6. Maybe add some documentation of the overall utility
7. Extraction of the Tensor data-structure (?)

Is there work going on currently in resolving one of the issues above? Is someone willing to contribute and to cooperate in fixing some? 

Best wishes,
Simon

Dr. Simon Praetorius
Institut für Wissenschaftliches Rechnen
Fakultät Mathematik
Technische Universität Dresden
Tel.: TUD-34432
Mail: simon.praetorius at tu-dresden.de
Web: www.math.tu-dresden.de/~spraetor




More information about the Dune-devel mailing list