How to Contribute
DUNE is a community project and we are happy about all forms of external
contributions. There are many easy things that you can do, like
- read the documentation and tell us where and how it should be improved,
- try to install DUNE on your platform and report bugs if it doesn't work,
- fix bugs and send us patches.
If you already have some experience with DUNE there are larger projects, too.
The following is a list of things that we find interesting but that we probably
will never have the time to do ourselves.
Additional Features
- Write a module with language bindings for dune-grid for languages
other than C++. Languages like C, Java, Python, or D would be interesting.
- Implement iterators over edges and faces in UGGrid. The challenge
here is that, unlike elements and vertices, edges and faces don't exist as
separate objects within UG.
- Do the same for YaspGrid. Make sure, though, that you don't noticeably
slow down existing YaspGrid functionality.
- Implement a reader for UG's NG/LGM file format using the abstract
grid factory interface. Currently these files can only be read using
a specially configured UGGrid. Having a general reader would allow
to use these files with other unstructured grid managers and would
also allow to simplify the UGGrid implementation.
Documentation
-
Tutorials are a good way to get started with Dune. A good
tutorial for dune-istl would be of great help.
Infrastructure
- Invent a mechanism that extracts all finite element implementations from dune-localfunctions
(plus their doxygen documentation), and renders them into a LaTeX document. This document
should then in turn become a reference section in the dune-localfunctions tutorial.
It seems that the doxygen-LaTeX functionality is too limited for this. You may have to
play around with the XML feature of doxygen. See the brief discussion in FS 735.
Additional Grid Backends
- Write a wrapper for the Racoon II grid manager. This is a parallel
AMR grid manager for 2d and 3d.
- Write a wrapper for the AmRoc grid manager. This is another AMR manager.
Some initial work has been done. Ask on the mailing list for details.
-
Write a parallel AMR grid manager that works in more than three space
dimensions.
-
Write a structured simplex grid for rectangular domains. 2d and 3d would
be great, the brave can implement Freudenthal's algorithm for a general n-d simplex grid.
Meta Grids
Meta grids are DUNE grids which are parametrized by another grid. An example
is SubGrid, which allows you to select a subset of elements of a
DUNE grid and treat this subset as a grid in its own right. Here are a few
other ideas for meta grids which may be useful.
- Write a meta grid which, given an affine grid with a parametrized
boundary, yields an isoparametric approximation of the boundary.