Changes between Version 15 and Version 16 of SoC2014


Ignore:
Timestamp:
Feb 2, 2014, 7:45:11 PM (9 years ago)
Author:
karsten
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoC2014

    v15 v16  
    106106This project would be mentored by Niall Douglas (http://www.nedprod.com/). Due to limits on free time, I would only be able to mentor one student this summer, and I generally provide a programming test based on AFIO to students whose have submitted proposals to ensure that their coding ability is minimally sufficient to be able to attempt a GSoC. Benefits for the student of a successful GSoC in this area are many: high performance async programming experience is very desirable in the marketplace right now, and getting your name attached to authorship of a Boost library is a shining bright light on a resume which will stand to your career for years to come. You will gain bleeding edge experience programming exclusively in C++11 across the main toolsets of Visual Studio, GCC and clang AND writing portable code for the main operating system platforms of Microsoft Windows, Linux, and BSD/OS X - again, all very desirable skills to have in the marketplace. For those of you looking at a career in computer science research, and depending on the success of your outcomes, you may even be able to pass peer review to present your work at the C++ Now conference held annually in May. Good luck with your GSoC applications!
    107107
     108=== Boost.odeint ===
     109
     110Boost.odeint [http://www.odeint.com] is a library devoted to finding numerical solutions of ordinary differential equations (ODEs).
     111It is developed in a generic way using Template Metaprogramming which leads to extraordinary high flexibility at top performance.
     112It is widely used in academic and industrial projects.
     113Boost.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.
     114Therefore, we offer the two following projects:
     115
     116==== Implicit Routines ====
     117
     118The current focus of odeint is on '''explicit''' routines, namely the Runge-Kutta schemes or the multi-step methods.
     119However, we would like to expand odeint by adding implicit routines in the same flexible manner.
     120Implicit routines are important when dealing with ''stiff'' systems, but also ensure stability in some cases of discretized partial differential equations (PDEs).
     121At the moment, odeint provides an implicit Euler and Rosenbrock algorithm, but the implementation is restricted to Boost.uBlas.
     122As 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.
     123This project would not only require pure coding, but first also a considerable amount of design work.
     124 * Develop a design on how the requirements on implicit routines can be modularized
     125 * Implement a prototype showing the usability of the design
     126 * Change the existing routines to the new design
     127 * Implement other backends (MTL, eigen,...) to demonstrate the flexibility
     128 * Provide examples and documentation
     129 * (Add more implicit routines, if time permits)
     130
     131This 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.
     132
     133The project will be mentored by Karsten Ahnert and Mario Mulansky.
     134
     135* [http://en.wikipedia.org/wiki/Numerical_methods_for_ordinary_differential_equations]
     136* [http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods]
     137* [http://en.wikipedia.org/wiki/Explicit_and_implicit_methods]
     138
    108139=== Boost.Functional/Invoke ===
    109140