[SciPy-Dev] GSoC' 15 Ideas: define general integrators; parallelize integration; higher-order ODEs

Max Mertens max.mail at dameweb.de
Mon Mar 16 12:37:16 EDT 2015


Hello everyone,

I am a bit late to write to this mailing list, therefore sorry for that.

My name is Max Mertens; I am a Electrical Engineering student at the
University of Ulm, Germany.
I have done a few projects in C(++) on physical simulations of multibody
dynamics with collision detection, and molecular dynamics with
interatomic potentials.

I got interested in SciPy as it facilitates physical simulations in an
easy way, but have not worked with SciPy so far. I would like to
contribute to SciPy as part of the GSoC, and am willing to contribute by
providing an "easy-fix" to one of the open issues.
Is there already a possibility to perform multibody/molecular dynamics
in SciPy or are there contributions needed in this scope?

The scipy.integrate module with ode and odeint provides several methods
to integrate differential equations. For this I have the following ideas:

  * add a interface/class/method to define general integration methods:
    For now you can specify various integrators like "vode" and "dopri5"
    as a string. The new code would allow to enter a Butcher tableau to
    define implicit/explicit (embedded) Runge-Kutta methods, which would
    cover "dopri5" and "dopri853" (see [0]); and possibly other general
    integrator descriptions as needed.
  * add distributed integration: Linear multistep integrators like
    Runge-Kutta with multiple differential equations can be parallelized
    to speed up calculations. This would distribute integrations to
    multiple threads; and/or, if needed for complicated equations like
    in multibody dynamics, distribute to multiple physical machines (I
    have developed a few ideas on how to accomplish this).
  * provide methods to integrate higher-order differential equations: is
    this needed, or are users of the library expected to express these
    as multiple first-order differential equations? Could this step be
    automated?

Do you think this would be a useful contribution to SciPy? Do you have
any suggestions?

Thank you for your feedback.

Max Mertens


[0] https://en.wikipedia.org/wiki/List_of_Runge%E2%80%93Kutta_methods





More information about the SciPy-Dev mailing list