| | 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. |