[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