| 99 | === Boost.odeint === |
| 100 | |
| 101 | Boost.odeint [http://www.odeint.com] is a library devoted to finding numerical solutions of ordinary differential equations (ODEs). |
| 102 | It is developed in a generic way using Template Metaprogramming which leads to extraordinary high flexibility at top performance. |
| 103 | It is widely used in academic and industrial projects. |
| 104 | Boost.odeint has been a Google Summer of Code project in 2011 [http://google-melange.appspot.com/gsoc/project/google/gsoc2011/mulansky/14001] and we would like again to see students involved in the development of this numerical library. |
| 105 | Therefore, we offer the two following projects: |
| 106 | |
| 107 | ==== Implicit Routines ==== |
| 108 | |
| 109 | The current focus of odeint is on _explicit_ routines, namely the Runge-Kutta schemes or the multi-step methods. |
| 110 | However, we would like to expand odeint by adding implicit routines in the same flexible manner. |
| 111 | At the moment, odeint provides an implicit Euler and Rosenbrock algorithm, but the implementation is restricted to Boost.uBlas. |
| 112 | As one of the main objectives of odeint is to provide highly flexible algorithms, we want to change this implementation to have a greater flexibility and interchangeability similar to that of the explicit routines. |
| 113 | This project would not only require pure coding, but first also a considerable amount of design work. |
| 114 | * Develop a design on how the requirements on implicit routines can be modularized |
| 115 | * Implement a prototype showing the usability of the design |
| 116 | * Change the existing routines to the new exchangeable design |
| 117 | * Implement other backends (MTL, eigen) to demonstrate the flexibility |
| 118 | * Provide examples and a documentation |
| 119 | * (Add more implicit routines, if time permits) |
| 120 | |
| 121 | This project does not only require profound knowledge on C++ and generic programming, but we would also like to see some experience on numerical algorithms and solving ODEs, if possible. |
| 122 | |
| 123 | The project will be mentored by Karsten Ahnert and Mario Mulansky. |