TODOs
This is a list of things that should be addressed in the nearer future to make the code more maintainable.
Singleton and SingletonList
-
Check where this concept is used and whether it is necessary. Reduce usage if possible (i.e. does the LagrangeMapper need to be a singleton per space?) -
Should the singleton list switch to shared_ptr to improve life time of object guarantees (when the singleton list was created shared_ptr did not exist)
Spaces
-
Remove duplicates (RTSpace etc?) -
Check test coverage -
Check some of the more obscure spaces (sum and product), what works? -
While doing so create a comprehensive list for the fempy docu -
hpdg spaces
BasisFunctionSets
-
Remove unused classes -
What works and what not
Operators and LinearOperators
-
check interface and implementation -
List of what is available and what works with which solvers, fempy docu -
Local mass matrix needs a cleanup, check correct impl for each (DG) space -
Local matrix interface (should have been switched to new interface) needs cleanup -
docu for fempy
Thread Parallelism
-
OpenMP or PThreads (or both) or C++ std::thread (both can be mixed with TBB) -
On or off by default -
General concept (keep it simple is my suggestion) -
docu for fempy (what works and how to use it) -
DiscreteFunction and LinearOperator, how to make addLocalDofs and addLocalMatrix thread safe (currently I added mutex inside the class)
Solvers
-
Mostly some cleanup, has been worked on a lot already -
PETSc, are all good things supported? -
ISTL, whats new? -
Parallelization (AMG) -
docu for fempy (what is available)
Testing
-
Reduce number of tests (merge some tests into one which reduces compile time) -
Make sure that CI runs actually run the correct set of tests -
Downstream testing (or at least nightly testing of the fem tool chain)
Storage and common and fempy
-
Some files are in dune/fem/storage and some in dune/fem/common -
What about misc -
Rename fempy folder to python for consistency with the core modules
GridParts
-
docu for fempy (what is available) and GridPart vs. GridView -
Can the concept be merged with GridView? -
GridPart --> GridView -
GridView --> GridPart (still needs GridPartAdapter)
-
Schemes
-
What is used and what can be removed -
DirichletContraints, what happened to the new concept
I/O
-
Persistence Manager and restart in Python -
Does the datadisp (visual/grape/datadisp) still work -
VTKWriter and dune-vtk
Capabilities
-
Concept for better checking that capabilities are actually implemented correctly -
Which capabilitities do we have and which do we need
Python bindings
-
boundary conditions and ids -
...