-
Notifications
You must be signed in to change notification settings - Fork 62
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.
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.
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 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 |
General
Step 0 Hello World
Step 1 Creating a coarse mesh
Step 2 Creating a uniform forest
Step 3 Adapting a forest
Step 4 Partition,-Balance,-Ghost
Step 5 Store element data
Step 6 Computing stencils
Step 7 Interpolation
Features
Prerequisites & Compilation
t8_time_forest_partition
t8_time_fractal
t8_time_new_refine
t8_time_partition
t8_time_prism
t8_time_set_join_by_vertices
Documentation
Tree Indexing
Element Indexing
Running on JUWELS using Slurm
Overview of the most used API functions
Known issues
Workflow - FreeCAD to t8code
Reproducing Scaling Results
Coding Guidelines
Contribution Workflow
Tips
Debugging with gdb
Debugging with valgrind
Development modules
Generating a code coverage report
Test driven development
Testing with GoogleTest
Writing C interface code