This was my way of learning about, and experimenting with:
- Numerical methods for the Navier-Stokes equations (incompressible flow);
- Discrete adjoint method, there is a geometry and mesh generation module for turbo-machinery so that the code can be used for optimization;
- Implementation strategies (domain decomposition, shared memory, GPU);
- Many other things (linear solvers, preconditioners, graphs, etc.);
The code is setup to compile with CodeBlocks.
See examples and tests.