Development Modules - DLR-AMR/t8code GitHub Wiki
Development Modules
We split the code into different development modules that are maintained by a module maintainer.
A development module is a part of the code that is independent of the other parts and interacts with these via interfaces.
We see this definition as the ideal. Some of the modules below may not be strictly separated via interfaces, but it should be our long-term goal to achieve full module separation.
Module maintainers
Each module has a designated module maintainer. The role of the module maintainer is to be a person of contact for anybody working on parts of the module.
The overall aim should be to organize development and to minimize duplicate work.
Tasks
The module maintainer:
- Has an overview of the module's functionality.
- Has an overview of current and planned developments that concern the module.
- Knows the future perspective of the module and takes it into account when planning new additions.
- Coordinates feature development in regards to the module.
- Consults developers when they develop features that affect the module.
Every developer is responsible for contacting the affected module maintainer as early as possible in the development process of new features.
The modules
The following is a list of all modules that we currently defined in t8code.
| Module | Description | Module maintainer |
|---|---|---|
| Cmesh | All cmesh functionalities that are not covered by individual modules | tbd. |
| Forest | All forest functionalities that are not covered by individual module | tbd. |
| Benchmarks | The benchmarks in benchmarks | tbd. |
| C Interface | The interface to the C programming language | tbd. |
| CAD | All CAD related functions | @sandro-elsweijer |
| CI | Our CI system, including local scripts and github and other settings | tbd. |
| Documentation | The documentation system | tbd. |
| Eclass and Shape | The eclass and element shape implementations (Two separate systems). | tbd. |
| Example | The examples from the https://github.com/DLR-AMR/t8code/tree/c6ce49798b8c52573212ab04b0d80914208f5158/example folder. | tbd. |
| Fortran Interface | The interface to the Fortran programming language | tbd. |
| Geometries | Geometry handling. | @sandro-elsweijer |
| Ghost | Ghost handling | tbd. (@sandro-elsweijer?) |
| Julia Interface | The interface to the Julia programming language, see https://github.com/DLR-AMR/T8code.jl | tbd. |
| Mesh handle | The mesh interface | @lenaploetzke |
| Mesh reader | Gmsh reader input | tbd. |
| Netcdf Output | Output to netcdf files | tbd. (@Niklas997?) |
| Python Interface | The interface to the Python programming language | tbd. |
| Schemes | The scheme CRTP class and its implementations | tbd. |
| Save and load | Cmesh and forest storing and loading for checkpointing | tbd. |
| Search | The forest search routing | tbd. |
| data containers | All data containers and handlers, see https://github.com/DLR-AMR/t8code/tree/c6ce49798b8c52573212ab04b0d80914208f5158/src/t8_data | tbd. |
| types | The strong types in t8code | tbd. |
| Test system | Our test system, helper files for tests, etc. | tbd. |
| Tutorials | The tutorials in https://github.com/DLR-AMR/t8code/tree/c6ce49798b8c52573212ab04b0d80914208f5158/tutorials and in the Wiki | tbd. |
| Vertex Connectivity | The cmesh vertex connectivity module | tbd. |
| VTK Input/Output | Vtk writer and reader | @Davknapp |